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
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
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
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
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
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
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
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
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
- 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
- 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
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
- 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
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
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
- 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
- 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
- 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
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
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