- Add a new example project in
examples
folder. It is a regular NPM package with its ownpackage.json
and Cypress dev dependency. - Add a corresponding
.github/workflows
YAML file that uses this action and runs insideexamples/X
working directory. The example should demonstrate the feature - Add workflow badge to README if needed
- Create a new local branch for any development, for example
git checkout -b featureA
- Update the source code in index.js
- Build
dist
file(s) usingnpm run build
- Commit any changed files, note the SHA of the commit
- Push the local branch to GitHub
- In a test repository, create a test branch, change the action to point at the new commit. Example
name: End-to-end tests
on: [push]
jobs:
cypress-run:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
# use specific commit pushed to GitHub
- uses: cypress-io/github-action@2a1baeb
You can use cypress-gh-action-example or cypress-gh-action-monorepo as test projects.
- Push the change and make sure the new feature performs correctly. If yes, open a pull request.
For pull request reviewers:
- When merging a pull request, squash all commits into one.
- Make sure the commit subject and body follow semantic commit convention. I prefer simplicity:
feat: added new parameter
fix: fixed a bug
If you need to bump major version, mark it as breaking change in the body of the commit's message like:
fix: upgrade dependency X
BREAKING CHANGE: requires Node 8 to run
- New versions of this action will be released automatically by the CI, see .github/workflows/main.yml. This will create a new GitHub release and will update the current
/v1
branch. Thus every user that use- uses: cypress-io/github-action@v2
will be using the new version automatically.
Seems to be a manual process right now. After a new release has been created, go to the release and click "Edit"
Review the release info, make sure the "publish ..." checkbox is checked
After clicking "Update the release" check that the Marketplace https://github.com/marketplace/actions/cypress-io has been updated.