Commit Graph

277 Commits

Author SHA1 Message Date
Sam Lord
74d0fee125 Set a default environment for browser tests
no issue
2022-12-02 17:04:04 +00:00
Sam Lord
00d223991d Improved browser test CI integration
refs: https://github.com/TryGhost/Toolbox/issues/481
2022-12-02 17:04:04 +00:00
Daniel Lockyer
bc0b1f6adc Added CI for running Playwright tests
🚧
2022-12-02 17:04:04 +00:00
Sam Lord
8b80233ae6 Added sample Portal test to PlayWright suite
refs: https://github.com/TryGhost/Toolbox/issues/479
2022-11-24 17:47:04 +00:00
Daniel Lockyer
6a3ea02fed Enabled codecov coverage uploading for E2E tests
refs https://github.com/TryGhost/Toolbox/issues/475

- this enables uploading to codecov for the E2E tests, and separates the
  unit + E2E test results with flags
2022-11-17 12:44:54 +07:00
Daniel Lockyer
e1a6a083a5
Removed nested quotes
- for some reason these aren't working with the GitHub Actions workflow
2022-11-04 10:52:06 +07:00
Daniel Lockyer
0609ec2525
Fixed create-release-branch failing with non-core tags
- the create-release-branch workflow works by getting the most recent
  tag, bumping it and using that to create the new tag
- now we've moved Portal into the monorepo, we've got two different
  types of flags, but the Portal ones aren't valid semver so the
  workflow fails if the most recent tag is one for Portal
- this fixes that by ensuring we only fetch tags matching the pattern we
  use for tagging Ghost
2022-11-04 10:38:22 +07:00
Daniel Lockyer
077ff89960
Removed pre-commit linting on non-main branches
- our use-case for this is to ensure that people don't push to
  `main` without running linting, as this can block CI from passing
  until the linting issue is resolved
- however, it can become annoying to run linting on non-main branches,
  especially when you just want to WIP some changes without caring for
  linting
- generally speaking, anyone who creates commits on a non-main branch is
  going to open them as a PR, so linting is run anyway
- this commit get the branch name and only runs linting if we're on
  `main`
2022-10-27 11:47:10 +07:00
Daniel Lockyer
3da7040e32
Removed verbose error logging for yarn dev failures
fixes https://github.com/TryGhost/Toolbox/issues/459

- in the situation where the `yarn dev` command fails, it pumps out a
  massive error message, which is incredibly distracting to the dev
  experience
- this changes the output to just be a log line with some suggestions on
  how to fix it
2022-10-27 11:25:43 +07:00
renovate[bot]
14dfd618c3 Update peter-evans/create-or-update-comment digest to 7305482 2022-10-20 10:24:34 +07:00
Daniel Lockyer
31235dcd04
Improved commit message docs in contributing guide
- `refs/closes` can be confusing to those who are not familiar with GitHub when we actually mean "use refs or fixes (or closes)"
- we generally don't want to use emojis for alpha features because adding it to the release notes is unnecessary until the feature is GA
2022-10-13 09:56:14 +07:00
Daniel Lockyer
e11636b6f8
Fixed execution path for lint commands in lint-staged
refs https://ghost.slack.com/archives/C02G9E68C/p1665497363885949

- we've seen an issue with `lint-staged` in the Admin package because it
  doesn't pick up the lint-todo file, so it incorrectly flags linting
  issues that we're ignoring
- this is happening because it runs the command from cwd, where the lint
  exclusion file does not exist
- thankfully, `lint-staged` has `--relative` which will run the command
  from the directory where the command is defined in config, so `ghost/admin`
  in our case, and that means the lint file is present and picked up
2022-10-11 21:54:58 +07:00
Daniel Lockyer
a37b2cd24e Switched to Husky + lint-staged for git hooks
- up until this commit, git hooks were only used by a handful of people
  because they were a pain:
  - they'd only be set up when you did `yarn setup`
  - the existing hooks ran `yarn lint` on all projects, which was
    incredibly slow
- as a result, not many of us actually had them enabled, but this would
  cause issues in CI because people were pushing un-linted commits
- other JS projects tend to use husky to automate the git hook setup and
  lint-staged to speed up linting on changed files
- this commit switches to using them both
  - `lint-staged` only runs `eslint` on staged JS files that are about to
    be committed - if there's a linting error, it will stop the commit
  - I've configured the pre-commit hook to successfully exit in CI because we
    don't want to run pre-commit hooks right now
- this means we can remove Grunt - yay!
2022-10-10 15:10:48 +07:00
Daniel Lockyer
0ecc6dc238
Added note about fetching the Stripe secret token
- this helps debug what is happening and when
2022-10-06 16:56:05 +07:00
Daniel Lockyer
7308bb9122
Switched to accessing config loader directly
- I lowered the code coverage on the repo to the point where
  it started failing because I added a new export to the config library
- this wasn't easy to add tests for because the existing config tests
  use the loader directly and not the library export
- instead, I'm just going to make the dev script access the loader, and
  make a note to clean this up in the future when we pull out the config
  module
2022-10-06 16:25:29 +07:00
Daniel Lockyer
0bfbee5523
Fixed yarn dev --stripe ignoring HTTPS configured sites
- because the cwd of `.github/dev.js` is not `ghost/core`, it doesn't
  pick up config.local.json files, so any configuration you set in there
  isn't applied
- this meant that developers with HTTPS configured locally couldn't use
  `--stripe` because it wouldn't configure the Stripe listening URL
  correctly
- this adds an exports to the config lib to allow passing options in,
  which I then utilize to pass the directory that config resides in
- this should fix the aforementioned problem with HTTPS
2022-10-06 15:58:51 +07:00
Daniel Lockyer
a35d388543
Fixed missing return when fetching Stripe key fails
- we should protect against the stripe command throwing an error because
  it's not installed or it errors etc
2022-10-06 15:42:19 +07:00
Daniel Lockyer
28cc88c2cd
Added --stripe support to yarn dev
refs https://ghost.slack.com/archives/C02G9E68C/p1665043198507819?thread_ts=1664955131.950719&cid=C02G9E68C

- this adds support for `yarn dev --stripe` which will spin up the
  Stripe CLI to listen for webhooks, and configures Ghost with the
  secret key it needs to communicate
- also fixes a minor typing error with a missing `env: {}`
2022-10-06 15:32:08 +07:00
Daniel Lockyer
ab99109bbf
Added support for running Portal from the monorepo
refs https://github.com/TryGhost/Toolbox/issues/426

- this adds support for `--portal` in `yarn dev` to support the upcoming
  migration of Portal into the monorepo
- also adds the Portal folder to the ignorelist for nodemon so Ghost
  doesn't bootloop
2022-10-05 11:51:06 +07:00
Hannah Wolfe
0b41fbf102
Updated hiring links
- Ghost is still hiring, but we've split our product engineer into two and the URL has changed
2022-09-30 19:56:26 +01:00
Daniel Lockyer
0a322574a8
Increased frequency of stale bot execution to hourly
- daily is a little to infrequent for us as it means new comments don't
  cause the issue/PR to be unlabeled as `stale` for up to 24hrs
- this commit increases the frequency to hourly
2022-09-29 16:10:49 +07:00
Daniel Lockyer
6de598dec9
Loosened restrictions on GHA label-actions workflow
refs https://github.com/TryGhost/Toolbox/issues/381

- when using `pull_request`, the workflow doesn't have permissions to
  write to the PR in question
- there is another trigger - `pull_request_target` - but this comes with
  a heap of security warnings
- our use of it should be OK because we're only checking out our own
  Action and not code from the PR
- this commit also adds permissions to specify we only want write access
  to issues and PRs
2022-09-29 11:39:35 +07:00
Daniel Lockyer
6e3da6921e
Removed MySQL 5 from CI
closes https://github.com/TryGhost/Toolbox/issues/396

- we no longer support MySQL 5 so we shouldn't be running CI against it
- this cleans up use of MySQL 5 in GHA
2022-09-27 08:03:53 +07:00
renovate[bot]
f0a37a36ba Update actions/stale action to v6 2022-09-23 15:21:51 +01:00
Daniel Lockyer
2bff2a22e0
Extracted dev tooling to separate script
refs https://github.com/TryGhost/Toolbox/issues/426

- we're going to need to support more complex combinations of dev
  commands soon, with other packages optionally running and env
  variables being altered
- this command pulls out a lot of the dev env scripting into a single
  scripts
- also cleans up the use of grunt-shell so we can remove the dependency
2022-09-23 15:02:35 +02:00
Daniel Lockyer
4d63034bd2 Altered CI to upload coverage in one step
fixes https://github.com/TryGhost/Toolbox/issues/395

- we seem to be encountering issues with codecov where it randomly
  reports huge jumps in test coverage %
- I'm still not sure of the reason why, but the general trend in CI with
  codecov is to store test coverage files as artifacts and then submit
  them to codecov in one go
- this commit implements that in our CI
- let's see if this improves anything
2022-09-15 11:30:13 +01:00
renovate[bot]
82d5d20aa0 Update peter-evans/create-or-update-comment digest to 6fcd282 2022-09-13 09:17:20 +01:00
Daniel Lockyer
914775d55f
Fixed creating release branches
- we didn't clone the repo at the point when we were running a git
  command, so that failed
- switched to a different method of checking out `main` and then
  checking out the most recent tag
2022-09-06 15:46:49 +01:00
Daniel Lockyer
e80ab4fc46
Added support for latest when creating release branches
- this should allow us to run the job without any manual effort, because
  it'll choose the latest tag for the patch release
2022-09-06 15:39:10 +01:00
Daniel Lockyer
064e91fb2d
Added pull_request event type to label actions workflow triggers
refs https://github.com/TryGhost/Toolbox/issues/381

- we want to start collecting events from pull requests so we can label
  and reply upon certain events
- this adds the `closed` and `labeled` events to the workflow triggers
2022-09-05 11:53:46 +01:00
Daniel Lockyer
75ec41cbe2 Fixed typo in CI workflow if-statement
- apparently I should only use single quotes here?
2022-09-05 10:15:44 +01:00
Daniel Lockyer
6f5dbf7820
Fixed submitting multiple coverage reports per test run
refs https://github.com/TryGhost/Toolbox/issues/395

- I think we regressed somewhere along the line here, but we seem to be
  submitting two test coverage reports for the Admin tests and the unit
  tests
- I'm not sure if this fixes the random issues we've been seeing with
  -5%/+14% coverage bumps but it should clean this issue up first
2022-09-05 10:06:12 +01:00
Daniel Lockyer
82c3e6b6a4
Fixed several issues with create-release-branch job
- uses the `semver` bash tool so we don't have to deal with NPM
  dependencies
- also cleans up the env variables
2022-09-01 21:23:26 +01:00
Daniel Lockyer
4e85343a94
Installed semver globally in CI workflow
- if we install it locally, it'll run into issues with colliding with
  Ghost's package versions
2022-09-01 20:48:25 +01:00
Daniel Lockyer
4ba26364a7
Added workflow to create release branches
- right now, we use an internal CI solution to create branches for patch
  releases, but it's difficult to use
- this workflow should allow the team to create release branches from
  the GitHub UI, without delving into our internal tooling
2022-09-01 20:43:07 +01:00
Daniel Lockyer
f04666ef52
Removed Admin production build test
- this was originally added because we had an issue with a production
  build of Admin during a release
- since then, we've got a canary build that runs for every commit on
  `main`
- I think this test is superfluous now, so this commit removes it and
  saves ~6 mins of CI time per commit
2022-08-31 11:21:22 +01:00
renovate[bot]
19befe7d56 Update peter-evans/create-or-update-comment digest to 5fdb3a6 2022-08-29 08:34:13 +01:00
Daniel Lockyer
60b8cb1a30 Updated CI runners to Ubuntu 22.04
refs https://github.com/actions/runner-images/issues/6002

- Ubuntu 18.04 is now deprecated in GHA
- this commit moves all tests onto 22.04 except the Admin integration
  tests because they're failing to pick Firefox up
- I can look into this after we've unblocked CI
2022-08-22 15:37:19 +02:00
Daniel Lockyer
efc10b501e
Re-enabled Ghost-CLI tests in CI
- this required some reworking for the new monorepo setup, but this
  commit should now enable the Ghost-CLI tests in CI again
- also switched upgrade test to v4 to support Node 16
2022-08-22 11:40:13 +02:00
renovate[bot]
30a9b5d1fa Update peter-evans/create-or-update-comment digest to 7aef7e4 2022-08-19 10:17:25 +02:00
Daniel Lockyer
d3a8b64f20
Added name to Custom build workflow
- this was missed from the previous commit but makes it prettier to read
2022-08-19 08:54:38 +02:00
Daniel Lockyer
f133e6af4d
Added workflow to build custom version of Ghost
refs 7913283c96

- you can supply a branch and a version to call it, and it'll produce a
  zip of the tarball you can use
- this should avoid the need for local builds, which are error prone
2022-08-19 08:52:33 +02:00
Daniel Lockyer
e77fedf9b2
Allowed label actions workflow to be run manually
- we might want to manually trigger the workflow outside of the
  schedule/event-driven flow
2022-08-17 09:26:56 +02:00
Daniel Lockyer
54aa9f016b Fixed full Admin test suite running during unit tests
- because of how the npm scripts were set up, we were running the full
  Admin integration tests during the unit tests phase of CI
- this commit renames the majority of `test` to `test:unit` in the
  package.json files, and aliases `test` to `test:unit`
- special packages like Admin have no-op'd `test:unit` scripts so we
  don't end up running its tests
2022-08-15 15:34:52 +02:00
Daniel Lockyer
fa25b72495
Disabled stalebot on PRs
fixes https://github.com/TryGhost/Toolbox/issues/350

- we don't want to mark PRs as stale because they might contain
  wonderful contributions ❤️
2022-08-08 21:31:20 +02:00
Daniel Lockyer
5b6544504b
Configured stale issues to be closed as not_planned
- if an issue goes stale, it shouldn't show up in GitHub as completed
2022-08-08 12:57:19 +02:00
Hannah Wolfe
6d6fd15e87
Update CONTRIBUTING.md
- remove references to defunct admin repo
2022-08-05 16:06:26 +01:00
Daniel Lockyer
a55d00f209
Fixed wrong command used for production build test
refs dd41929251

- this was missed from the previous commit
2022-08-05 09:59:52 +02:00
Daniel Lockyer
ddcff9621d
Updated all GitHub-owned Actions to v3
- updating to v3 gives us the Latest And Greatest ™️
- really, it only bumps these workflows to Node 16, which is still fine
  with me
2022-08-03 22:33:28 +02:00
Daniel Lockyer
8878c50c43
Fixed formatting of Canary workflow
- this was a typo from the previous commit, the `uses` should be outside
  of `steps`
2022-08-03 17:26:10 +02:00