Commit Graph

55 Commits

Author SHA1 Message Date
Sam Lord
167a442ffe Free ubuntu-latest machines now also have 4 cores
refs: https://github.blog/2024-01-17-github-hosted-runners-double-the-power-for-open-source/

This should still allow us to run tests in 8~ minutes without paying for the VM time
2024-01-18 09:35:30 +00:00
Daniel Lockyer
d65a95836b Revert "Enabled app build artifact caching in CI"
This reverts commit 617d3a6ffc.
2023-12-11 15:32:46 +01:00
Daniel Lockyer
617d3a6ffc Enabled app build artifact caching in CI
fixes https://github.com/TryGhost/DevOps/issues/120

- we've seen errors in CI where the unit tests for the apps folder are
  being run concurrently, but the build assets are not present so
  multiple builds are happening for the same folder
- this leads to errors because Vite tries to cleanup or build folders
  at the same time
- this should fix that by eagerly building the apps and caching the
  output so unit tests run quicker
2023-12-11 12:28:27 +01:00
Simon Backx
e3cdc24d6b
Added test to test default theme against linked gscan version (#19020)
fixes GRO-32

If we ever introduce errors in the linked source theme and linked gscan
version combination, this test will catch it.
2023-11-16 12:03:00 +00:00
Daniel Lockyer
e2be6dbf14 Configured submodules to clone in performance tests
refs https://github.com/TryGhost/DevOps/issues/105

- we should include submodules in the checkout so the Ghost boot is
  representative of booting Ghost with a theme
2023-11-15 14:08:32 +01:00
Daniel Lockyer
566f2055d0 Moved GitHub context logging to job
- this stops the entire context from being output in the env vars, so it
  cleans up the output at the top of each job
2023-11-15 13:54:20 +01:00
Daniel Lockyer
18afd39193 Removed NODE_ENV env var from perf tests
refs 05977d5c26

- this seems to break things, will investigate once this is merged
- also adds showing output flag so debugging is easier
2023-11-15 13:35:41 +01:00
Daniel Lockyer
05977d5c26 Added boot time performance test to CI
refs https://github.com/TryGhost/DevOps/issues/105

- this will run a small benchmark on the boot time for Ghost, and push
  the stats to another repository which has GitHub Pages enabled, so we
  can visualise the change over time
- will only run on pushes to `main` so we don't pollute the stats with
  commits from PRs
- just a test for now to see if we get stable numbers
2023-11-15 13:24:56 +01:00
renovate[bot]
3909de2f17 Update actions/setup-node action to v4 2023-11-08 13:29:13 +01:00
Daniel Lockyer
6900c1f2b3 Configured CI to run Ghost-CLI tests on Node 18
refs https://github.com/TryGhost/DevOps/issues/75

- this will install v4 using Node v16 and then switch to v18 as we're
  about to drop support for Node v16
2023-10-25 17:50:56 +02:00
Daniel Lockyer
f6dfe05c30 Added guard against non-code changes to run CI tests
- we don't want to run browser tests if no code has changed
2023-10-25 12:06:00 +02:00
Daniel Lockyer
c5c6f84c7d Added CI check to ensure i18n translations are in sync
fixes https://github.com/TryGhost/DevOps/issues/91

- this adds a CI job that will run i18n tests if any of the packages
  that use it have changed
- this helps prevent translations from going out of sync
2023-10-25 12:06:00 +02:00
Sam Lord
11b9e8a73f Switch to 4-core runners for browser tests
refs: https://github.com/TryGhost/DevOps/issues/78

This number of cores has been approved, will test with 1 browser per core, and 1 browser for every two cores
2023-10-17 12:40:19 +01:00
Daniel Lockyer
e699facc03 Cleaned path to Playwright reports
- this is cleaner and follows the pattern as other jobs do
2023-10-16 17:37:42 +02:00
Daniel Lockyer
18f55d6af0 Moved browser E2E tests into CI workflow
refs https://github.com/TryGhost/DevOps/issues/78

- this allows us to take advantage of the dependency caching and metadata
  workflows, to reduce the overall execution time and duplicate logic
2023-10-16 13:45:22 +02:00
Ronald Langeveld
a596b3aaca
Renamed e2e tests to acceptance tests in Admin X (#18439)
ref https://www.notion.so/AdminX-testing-plan-99b2dab27e794fc893767ccd01c84a63?d=26612fc2b9d84e65bbb269fa3bc5079e&pvs=4#f0089cd4d9f24e93bd7f8e2868987bf6

This pull request renames the end-to-end tests to acceptance tests in
the `apps/admin-x-settings` folder. It updates the `ci.yml` file, the
`package.json` file, the `playwright.config.ts` file, and the test files
to reflect the new naming convention. This change aims to better reflect
the purpose and scope of the tests.
2023-10-03 16:20:40 +07:00
Daniel Lockyer
62eb8604fa Fixed uploading Playwright reports
- this was previously broken because the paths were incorrect
2023-10-03 08:56:06 +02:00
Daniel Lockyer
0372bf8e50 Switched yarn workspace to yarn nx run ...
- this switches to NX for more command-execution, which helps in the
  future because we can configure dependent tasks that are also
  cacheable
2023-10-03 08:56:06 +02:00
Daniel Lockyer
f705dda314 Updated Admin-X bundling process
refs https://github.com/TryGhost/DevOps/issues/80

- as part of moving Admin-X-Setting towards GA, we want to change it from
  loading the settings externally via a CDN, to bundling it in with
  Admin
- the bulk of the changes here are removing the config in Ghost, setting
  up the copy to the Admin assets dir, and loading the new path in Admin
- several other changes have come along the way as I've cleaned up
  unneeded code
2023-09-19 11:31:55 +02:00
Daniel Lockyer
acb182c785 Dropped Node 16 from CI matrix tests
refs https://github.com/TryGhost/DevOps/issues/75

- Node 16 has gone EOL so we can from support for it from our matrix
  tests
- dropping support in some other tests and in general will come in
  future commits
2023-09-13 15:47:56 +02:00
renovate[bot]
d3db3b32d2 Update actions/checkout action to v4 2023-09-05 14:29:11 +02:00
Daniel Lockyer
d4b717493c Migrated to Actions trigger-metric workflow
refs https://github.com/TryGhost/DevOps/issues/70

- I've moved the code and history into the Actions repo to keep these
  things more maintainable
- this commit updates the reference to the action
2023-09-04 13:24:39 +02:00
Daniel Lockyer
fd95eac710 Hardcoded success criteria for running canary job
refs https://github.com/TryGhost/DevOps/issues/57

- I'm not sure why but I think the `contains` are doing funky things
  and not allowing the build to run when we expect it to
- switching to a slightly different if-statement should help with that
2023-08-11 17:20:32 +02:00
Daniel Lockyer
b60d5bbe06 Added debugging to diagnose cause of skipped canary builds
refs https://github.com/TryGhost/DevOps/issues/57

- this should help us find out why canary builds are skipped in some
  circumstances
2023-08-11 10:23:10 +02:00
Daniel Lockyer
64af4e2742 Added more debugging to find cause of skipped canary tests
refs https://github.com/TryGhost/DevOps/issues/57

- adds a step to output the `needs` context
- adds `cancelled` as a "failed" step because it means we haven't run
  all the tests
- unfortunately there's no way to assert all elements are one type
  (success), so we have to check for existence of the negative ones
2023-08-09 12:58:56 +02:00
Sam Lord
116d11b6ab Allows unknown local cache when testing with Nx
refs: https://github.com/TryGhost/DevOps/issues/55

The documentation for this feature is here: https://nx.dev/recipes/troubleshooting/unknown-local-cache

Ideally, we'd use a remote cache, but we can just share to local cache since it's being shared by identical machines.
2023-08-08 17:57:33 +01:00
Fabien 'egg' O'Carroll
2b9e322b3e
Reverted "Disabled the Ghost-CLI Github Action" (#17562)
This reverts commit 5103b58c0c.

- We only disabled this so that we could release v5.57.1
2023-08-01 20:21:10 +00:00
Fabien "egg" O'Carroll
5103b58c0c Disabled the Ghost-CLI Github Action
This action was failing and stopping us from releasing a patch release.
The failure was a false negative, and due to what we believe is a cache issue.
2023-08-01 20:44:04 +01:00
Daniel Lockyer
58cfa6ff15 Updated dependency cache keys
- this should now restore from a shared cache but update a unique cache
  for use within the rest of the jobs
2023-07-28 10:11:52 +02:00
Daniel Lockyer
13c8a26ea4 Fixed dependency cache key with new package
- in the event there is a new package, we need to completely reset the
  cache key otherwise `yarn` won't link the packages correctly
2023-07-27 22:33:46 +02:00
Daniel Lockyer
af320ab864 Fixed new package detection
- turns out new packages folders aren't generating an `A` status in `git
  diff`, so this line never worked
- if we create a `package.json` file, we can reasonably assume we're
  creating a new package, so this should fix the issues we were seeing
  with caching + new packages
2023-07-25 16:15:36 +02:00
Daniel Lockyer
adc3f8e8ee Skipped dependency caching for new packages
- in this event, we don't want to cache the dependencies because the new
  package will need to be linked to the others
- this commit should add detection for new packages and skip the cache
  if so
2023-07-25 15:14:50 +02:00
Daniel Lockyer
0a7fb4c881 Reimplemented canary builds on main
refs https://github.com/TryGhost/DevOps/issues/47

- this adds a canary job that waits for successful tests and then kicks
  off the Docker build step
2023-07-18 14:52:54 +02:00
Daniel Lockyer
90adbc4865 Removed canary workflows
refs https://github.com/TryGhost/DevOps/issues/47

- we need to start building from git refs so this workflow which builds
  a tarball is no longer needed and just adds to the execution time
2023-07-14 11:24:18 +02:00
Daniel Lockyer
9f40c90e07 Switched to Nx runner for more tasks
- this switches us to using Nx for `ghost:dev`, which means we can
  configure its dependencies and ensure that the TS projects are built
  beforehand
- also switches to Nx for `ghost:archive` so we don't need to run
  `build:ts` for all `yarn` commands
2023-07-14 08:52:01 +02:00
Daniel Lockyer
e990cbba01 Configured storing Nx cache in GHA to speed up builds
refs https://github.com/TryGhost/DevOps/issues/47

- this allows us to store and restore the cache for TS builds, which
  should speed up the whole process
2023-07-14 08:52:01 +02:00
Daniel Lockyer
2aa7da3a0b Improved monorepo tooling setup
refs https://github.com/TryGhost/DevOps/issues/45

- this switches the monorepo over to using Nx instead of Lerna, because
  we don't currently need the versioning+publishing capabilities
- this also adds an `nx.json`, which allows us to enable task caching
- also adds `build:ts` to the TS projects, which is cached for fast execution
- how these interact with the dev.js script will hopefully soon be
  reworked to be a better experience
2023-07-12 16:27:39 +02:00
Daniel Lockyer
d38e7fd46f Disabled CI workflows for Renovate branches
refs https://github.com/TryGhost/DevOps/issues/43

- because we now enforce all commits through a PR, Renovate can no
  longer automerge commits
- this is actually a huge bonus because it simplifies a lot of the
  issues we were having with the GHA setup
- this commit removes the triggers and special handling to remove the
  duplicate executions
2023-07-11 09:30:59 +02:00
Daniel Lockyer
f7aeb4138e Switched to printf to echo GitHub context
- printf is a little safer and should prevent issues with command
  execution within the metadata job
2023-07-10 17:54:47 +02:00
Daniel Lockyer
aa303414cb ℹ️ Bumped minimum Node 16 version to 16.14.0
fixes https://github.com/TryGhost/DevOps/issues/42

- several of our dependencies require this so making the minor bump to
  increase the version helps keep them updated
2023-07-10 16:41:34 +02:00
Daniel Lockyer
f50e878cb2 Fixed error about long filename
- echoing the data should avoid issues with piping in data through a
  file redirection
2023-07-10 15:15:12 +02:00
Daniel Lockyer
389f480c96 Removed forced pushed CI check
- we probably just want to run my logic to get the base commit for all
  pushes because otherwise the `base.sha` will be null for new branches
2023-07-10 15:03:09 +02:00
Daniel Lockyer
a5fe87cc4d Fixed caching build assets
- we shouldn't cache the build assets against the yarn.lock hash because
  the files could change independent of that file
- this bring the build caching more inline with https://github.com/getsentry/sentry-javascript/blob/develop/.github/workflows/build.yml,
  which is a big inspiration for this file
2023-07-10 14:47:08 +02:00
Daniel Lockyer
c158aa7397 Updated fetching latest base commit
- unfortunately GitHub makes this incredibly hard and this commit
  doesn't even provide a full solution, but it should allow us to fetch
  the latest commit for PRs and pushes to a branch, but not force pushes
2023-07-10 13:22:00 +02:00
Daniel Lockyer
b4d9191522 Fixed --since parameter for partial executions
- if a branch is force-pushed, the existing value is incorrect and we
  get errors from Lerna
- this switches to finding the common commit between this branch and
  the head as reported by GitHub
2023-07-10 09:55:19 +02:00
Daniel Lockyer
5b7a89d8fc Deduplicated execution check in CI workflow
- we only need this on the metadata step because it trickles down to the
  other workflows that depend on it
2023-07-10 09:55:19 +02:00
Daniel Lockyer
b6131f0631 Fixed canary build triggering
- this previously wouldn't trigger if any of the `needs` are skipped
- this switches to waiting for the actual job which checks if all
  required jobs were completed successfully
2023-07-07 15:30:22 +02:00
Daniel Lockyer
f6aeff6524 Added handling for building arch branch
refs https://github.com/TryGhost/DevOps/issues/40

- this is an experimental branch that needs a separate canary build
- these changes should help support that by allowing canary builds on
  that branch
2023-07-06 09:24:45 +02:00
Daniel Lockyer
92120324eb Updated workflow for code coverage
- added separate Admin codecov step
- removed unit test until we figure out handling for partial runs
2023-07-06 09:24:45 +02:00
Daniel Lockyer
289e459283 Added tests for migrations
refs https://github.com/TryGhost/DevOps/issues/39

- up until now, we've had a CI job which does a really basic test for
  migrations, but it barely functions and misses bugs all the time
- this commit removes that and switches to an actual test suite for our
  migrations, so we can ensure they function as expected
- also removes the env var hack I came up with for those migrations
  tests
- this should lead to safer migrations and faster tests
2023-07-05 11:00:06 +02:00