Commit Graph

141 Commits

Author SHA1 Message Date
Daniel Lockyer
1ba2988e98
Added v5.* to workflow triggers
- this is needed so we run CI tests on release branches
2022-07-19 15:21:42 +02:00
Renovate Bot
dc3a6a4eaa Update peter-evans/create-or-update-comment digest to b95e16d 2022-07-07 08:59:57 +02:00
Daniel Lockyer
6a3f61f62a Fixed database environment variables leaking across matrix runs
refs https://github.com/TryGhost/Toolbox/issues/244

- due to the way we currently set the env vars, they get applied across
  all matrix variations
- this means we're leaking the variables for SQLite to the MySQL test
  runs and this shows a warning because of how strict `mysql2` is
- this commit switches to optionally setting the env variables
- this is a partial workaround for fbcdacbd83/core/shared/config/utils.js (L55-L76) not seeming to work
2022-06-02 09:49:22 -04:00
Daniel Lockyer
264678e9be
Prevented certain GitHub Actions workflows from running on forks
fixes https://github.com/TryGhost/Toolbox/issues/285

- without this, some of the workflows that are only useful for the core
  team will run on forks
- this commit adds checks to ensure we're running on a repo maintained
  by the TryGhost organization for a handful of workflows
2022-06-01 17:54:26 -04:00
Daniel Lockyer
14828399e0
Reverted Ghost-CLI CI test to bumping minor version
- now we've released 5.0, we don't need to bump to the next major so we
  can just bump to the next minor
2022-05-24 09:20:57 +02:00
Daniel Lockyer
cb80be3d0c
Fixed migrations running in CI tests
- we needed to bump the major version so 5.0 migrations will run in CI
- I'm also switching the Migrations test to delete all 5.x migrations
  and re-run them to test idempotency
2022-05-09 11:49:53 +01:00
Daniel Lockyer
3171df4102
🔥 Dropped support for Node 12
refs https://github.com/TryGhost/Toolbox/issues/267

- Node 12 becomes EOL on April 30th so we're going to be dropping
  support for it in Ghost
- this commit updates the Node engine ranges so CLI can pick this up,
  and drops 12.22.1 from the CI matrix
2022-04-19 15:53:44 +01:00
Daniel Lockyer
6d5a8c6b31 Bumped Ghost-CLI test Node version to v14
refs https://github.com/TryGhost/Toolbox/issues/267

- we're about to remove support for Node 12 so this needs bumping to
  keep things chugging along
2022-04-19 15:44:43 +01:00
Daniel Lockyer
a109cca55c
Added 5.0 branch to CI trigger
refs https://github.com/TryGhost/Toolbox/issues/273

- ahead of 5.0, we need to make sure we're running development branch tests on CI
2022-04-05 09:31:54 +01:00
Daniel Lockyer
c187b3d182
Extracted Canary workflow to template
refs 4aee97472e

- the referenced commit copied the workflow file to our shared templates
  repository
- this commit switches to using that template
- this should help reduce duplication when we're doing v5
2022-03-31 08:27:18 +01:00
Renovate Bot
bf6188e331 Update peter-evans/create-or-update-comment digest to 26f0786 2022-03-28 14:30:20 +01:00
Renovate Bot
96503862bf Update peter-evans/create-or-update-comment digest to 704bc87 2022-03-24 12:07:09 +00:00
Daniel Lockyer
a7074592c8 Configured CI to only calculate coverage for recommended Node version
- we seem to be getting some odd numbers when running c8 on Node 12, and
  it's causing our CI checks to fail
- even when we're adding tests, the coverage value goes down
- this is disrupting the team from shipping, so we need to change that
- this commit alters the setup to run unit tests w/ c8 for Node 16 unit
  tests, and without c8 for other versions
- `yarn test:unit` is kept the same for everyday use
2022-03-07 13:45:33 +00:00
Matt Hanley
cd081e46fb Removed migration requirement for sqlite 2022-03-04 11:27:04 +00:00
Renovate Bot
e4df868886 Update actions/upload-artifact action to v3 2022-03-04 11:02:53 +01:00
Renovate Bot
5220083470 Update actions/stale action to v5 2022-03-03 14:56:07 +01:00
Daniel Lockyer
bf6f607f42 Switched to mysql2 library
refs https://github.com/TryGhost/Toolbox/issues/174

- this commit switches Ghost from using the `mysql` library to the
  `mysql2` one
- we've done this for several reasons:
  - `mysql2` is more actively maintained
  - `mysql2` natively supports the default auth plugin on MySQL 8
  - `mysql2` is fasterrrr
- there have been various other commits refactoring the groundwork for
  this commit but this commit should be short and sweet:
  - alias `mysql` to `mysql2` client so we maintain backwards
    compatibility with all configs who use `"client": "mysql"`
  - enabled `decimalNumbers` so we maintain the same functionality as
    `mysql`
  - replaced the dependencies and updated `knex-migrator`
  - hardcoded the newer authentication plugin in MySQL 8 CI. Before
    switching to `mysql2`, this would break because it didn't support
    this
2022-03-03 09:59:37 +01:00
Renovate Bot
83af4795e2 Update actions/checkout action to v3 2022-03-02 08:06:56 +01:00
Renovate Bot
d87a8f1a6e Update actions/setup-node action to v3 2022-03-01 08:31:42 +01:00
Hannah Wolfe
3bd8e01495 Pinned coverage to current levels to prevent drops
- Updating our config to have `--check-coverage` enforces that the coverage meets a certain level.
- The default is 95 I believe, but our coverage is lower.
- I've set the levels to our current levels, so any drop below these numbers will cause the build to fail.
- I've also set the reporters to be text, html and cobertura so we always have a mini report, the full HTML files to navigate and cobertura for CI
- Cleaned up CI so we don't use the cov:unit command as we're now using codecov
- This also means we can remove the cov:unit command which was weird to use because it uses the last test run, which can be confusing
2022-02-24 09:56:06 +00:00
Daniel Lockyer
33d4a711e0
Fixed inputs being passed as env variables in CI
- turns out we need `github.event` prepended to the variable for it to
  work
2022-02-17 12:25:30 +01:00
Daniel Lockyer
b1bb2ad8e8
Fixed syntax of inputs in CI workflow
- the inputs should be under an `inputs` key - not sure where that went
  missing
2022-02-17 12:20:29 +01:00
Daniel Lockyer
1a0362f3db Added demo E2E browser test
refs https://github.com/TryGhost/Toolbox/issues/207

- we want to start writing some E2E tests that involve automated
  pointing and clicking around the frontend of Ghost to test that
  members of Ghost sites can still do what we expect
- we've decided to look in to Playwright for this - it looks __really__
  nice
- this is a VERY basic first test - it'll check for a 200 on the
  homepage of whatever we provide as the TEST_URL env variable, or
  default to a (manually-run) Ghost instance on port 2368
- also adds a `yarn test:browser` command to run the tests using the
  Playwright CLI, and a sample GitHub Action workflow which we can
  manually run with a site URL
- there's a lot more to add here in terms of test framework but this
  gets us started
2022-02-17 12:16:58 +01:00
Daniel Lockyer
08eaed152b Added yarn test:ci command
refs https://github.com/TryGhost/Toolbox/issues/208

- we currently run all test commands separately in CI and this can make
  it harder to replicate any issues we see in CI because we have to
  manually go and copy the order of the tests
- it's also nicer if there's just one command that runs so we can make
  changes globally to CI
- this commit adds a test:ci yarn command which will run the tests in
  order of speed/importance, with the -b AKA fail-fast flag so we
  don't have to wait for all tests to run before finding out about
  issues
- this also cleans up running unit tests in the DB matrix
2022-02-16 19:22:20 +01:00
Daniel Lockyer
7a5b262a84 Renamed CI test workflows
- these names are a little more descriptive and look better in GitHub
2022-02-16 19:22:20 +01:00
Daniel Lockyer
d4759d30a7 Split out unit tests from CI matrix
refs https://github.com/TryGhost/Toolbox/issues/208

- unit tests (shouldn't) be database dependent so they don't need to be
  included in the DB matrix
- this prevents an extra 6 executions of unit tests, which isn't a big
  deal given they only take 10s to run, but semantically they belong
  outside so this commit does that
- also updates the canary step to rely on this extra test run
2022-02-16 19:22:20 +01:00
Daniel Lockyer
f55f2b1587
Added check for Ghost-CLI logs in CI
no issue

- we might fail the tests but not produce any logs in Ghost-CLI
- concatenating the logs would then fail because of the lack of existence
  of a directory
- this commit adds a check that files exist before trying to get the
  contents of the files
2022-02-04 09:40:26 +01:00
Renovate Bot
79609632b1 Update peter-evans/create-or-update-comment commit hash to 63e171a 2022-01-31 08:45:43 +00:00
Daniel Lockyer
2122a47ce0 Added MySQL 8 to CI tests
refs https://github.com/TryGhost/Toolbox/issues/181

- we officially support MySQL 8 but we don't run tests for it -- oops
- this commit adds MySQL 8 to the DB matrix in CI tests
- I had to switch to a fork of the `mysql-action` repo so I could get
  the native authentication plugin working, but I expect to revert this
  once we've merged support for mysql2
2022-01-25 12:23:15 +00:00
Daniel Lockyer
34e8c299e7
Added concurrency option to test workflow in CI
refs
https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#example-using-a-fallback-value

- CI sometimes becomes clogged up with concurrent runs for a PR if the
  PR is updated
- this sometimes happens when we merge a bunch of Renovate PRs and other
  PRs rebase on top of `main` multiple times
- we shouldn't continue to run tests for PRs if the branches have been pushed
  to since they started
- from the referenced link above, this is the built-in solution that
  cancels previous in-progress runs if a new job starts
2022-01-14 10:26:26 +00:00
Joe Grigg
60ff6d4267 Updated github release action to use new main branch of ghost-release
no issue

- We have switched over to using the new git standard of using the main branch rather than master.
2022-01-11 16:09:58 +00:00
Sam Lord
845ed665f0 Prevent TailScale failures from breaking the build
no issue

Includes a timeout if TailScale is completely inaccessible, and a
continue-on-error statement which should handle all forms of
failure. The following step also includes a continue-on-error step, as
reporting metrics depends on TailScale succeeding, and should also
never fail the build.
2021-12-14 09:37:38 +00:00
Sam Lord
928a30bd98 Prevent TailScale from trying to run in pushes to main branch on forks. 2021-12-06 15:28:05 +00:00
Renovate Bot
74f45669d2 Update peter-evans/create-or-update-comment commit hash to ad0c5a2 2021-12-03 09:51:13 +00:00
Oscar Dominguez
141f794750
Added yarn cache to CI workflows (#13716) 2021-11-30 08:01:22 +00:00
Daniel Lockyer
aec14e5cf3
Disabled FORCE_COLOR on setup-node GitHub Action
refs https://github.com/TryGhost/Ghost/pull/13716
refs https://github.com/actions/setup-node/issues/317#issuecomment-929694556

- the `setup-node` GitHub Action seems to use a shell command to get the
  cache path, but these are colorised when `FORCE_COLOR` is enabled
- this causes the Action to fail to read the path correctly
- the comment referenced above suggests to remove `FORCE_COLOR` but it's
  nice to have colored output for our tests
- instead, I'm disabling the environment variable on the `setup-node`
  action so it still works
- I've tested with the referenced PR and this unblocks dependency caching 🎉
2021-11-25 09:11:35 +01:00
Daniel Lockyer
b1ee741ddb
Added issue closed event to triggers for label action
refs 2a19e6151c

- we want to ensure that the `needs triage` label is removed when an
  issue is closed
- the event was handled in the labelling Action but it needs the event
  adding here to trigger execution
2021-11-18 11:05:49 +01:00
Renovate Bot
c2fe04f681 Update actions/stale action to v4 2021-11-15 08:23:54 +00:00
Matt Hanley
1477d2712b Pinned GH Action for migration PR workflow to a specific commit
no-issue
- The workflow runs in the pull_request_target context which has access to repo secrets even when triggered from a fork
- Pinned the GH Action to a specific version to guard against upstream changes to the Action which may abuse access to secrets
2021-11-12 15:49:41 +00:00
Daniel Lockyer
9768ad42c4
Configured stalebot to run at 15:00 UTC
refs https://github.com/TryGhost/Toolbox/issues/81

- changes the bot to run during office hours so we can keep an eye on it
2021-11-12 14:44:54 +00:00
Daniel Lockyer
0847340b9a
Switched to GitHub Action for handling stale issues + PRs
refs https://github.com/TryGhost/Toolbox/issues/81

- https://github.com/actions/stale is the official way to handle stale
  issues and PRs and our old method hasn't worked for a while
- most of this is copied from [Ghost-CLI's stale
  workflow](https://github.com/TryGhost/Ghost-CLI/blob/main/.github/workflows/stale.yml)
  but the comment contents and labels have been updated
- also removes the config for the broken, existing method
2021-11-12 14:21:12 +00:00
Daniel Lockyer
bf4ae212fd
Switched to custom issue labeling bot
refs https://github.com/TryGhost/Toolbox/issues/81

- the existing `label-actions` tooling was deprecated and shut down but
  after reviewing, it wasn't expressive enough for our workflow use cases
- we wanted a tool we could drop into our repos and it works without
  extra configuration
- I've developed the `tryghost/label-actions` GitHub Action which will
  supports all our labeling flows for triaging
- this commit switches the repo over to using that
- configured the scheduled tasks to run at midnight daily
2021-11-12 10:57:27 +00:00
Sam Lord
0955caf311 Prevent Tailscale running in PRs on forks 2021-11-11 10:17:08 +00:00
Sam Lord
e4487c395c
Add metrics for test duration in Github workflow
refs: https://github.com/TryGhost/Toolbox/issues/118

Previously would attempt to run in forked repos, but couldn't access secrets so just hung.
2021-11-11 09:26:11 +00:00
Matt Hanley
64e8fdf4bb
Added migration review checklist (#13711)
no issue
- Adds a comment to PRs containing migrations with a checklist for the reviewer to complete
2021-11-05 09:33:55 +00:00
Sam Lord
b79870d48c Revert "Added metrics for test runs"
This reverts commit e9afa6f40f.

Reverting because the TailScale step sometimes crashes the build
2021-11-01 13:31:43 +00:00
Sam Lord
e9afa6f40f
Added metrics for test runs
Refs CORE-120

When test runs execute, use the new @tryghost/metrics package to send metrics to configurable backends.

At the moment, we're just sending the test run duration to our metric store in preparation of changes to the test suite.
2021-10-28 14:15:48 +01:00
Daniel Lockyer
f4b48c1373 🔥 Added support for Node 16
refs https://github.com/TryGhost/Toolbox/issues/71

- Node 16 is now LTS so we're adding support in Ghost
- we're also bumping the minimum Node 14 version to 14.17.0 so we can merge
  dependencies who have higher Node 14 requirements than current
- this commit adds Node 16 to the `package.json` engines and to CI
- also bumps all dependencies that needed new versions to add Node 16
  support
2021-10-27 11:39:42 +01:00
Daniel Lockyer
32b325eb4c Added codecov.io coverage uploader to CI
refs linear.app/tryghost/issue/CORE-74/improve-the-test-situation

- this commit adds the codecov GitHub Action into CI so we can upload
  coverage reports
- the coverage files need to be in XML for them to work with
  codecov, so this commit also adds cobertura (XML) as a reporter
2021-10-20 15:12:07 +02:00
Hannah Wolfe
bcf19c8fe2
Fixed CI not running integration tests
refs: 726db1c0e

- I totally forgot/missed that we run each test suite individually on CI, rather than using `yarn test:all`
2021-10-14 12:24:16 +01:00