- Fork this repository to your own GitHub account and then clone it to your local device. (
git remote add upstream [email protected]:expo/expo-github-action.git
😉) - Make sure you have the following packages globally installed on your system:
- Install the Node packages (
yarn install
)
To try out your changes with GitHub Action, you have to reference your fork and/or branch or commit reference in the workflow you want to try. After that, you have two options:
- Run the workflow in GitHub Actions itself by triggering your workflow.
- Run the workflow locally with nektos/act.
Testing is done using Jest. Run yarn test
to run Jest.
If your PR is ready, run the test workflow to test the workflows on all supported OS system.
If this is your first time committing to a large public repo, you could look through this neat tutorial: "How to Write a Git Commit Message"
Commit messages are formatted using the Conventional Commits format. You can take a look at .releaserc.js
for the allowed commit types.
docs: fix typo in xxx
feature: add support for SDK 40
chore: add test-case for custom completions
fix: improve logging for errors
refactor: update loading icon
To get your PR merged as fast as possible, please make sure you have done the following:
- Run
yarn lint --fix
to fix the formatting of the code. Ensure thatyarn lint
succeeds without errors or warnings. - Run
yarn test
to make sure all normal use cases are passing. - Run
yarn build
to ensure the build is up-to-date and runs correctly and without errors or warnings.
To release a new version for GitHub Actions, we have to create a new release in GitHub. You can run the Release
workflow to generate a new version, changelog, and GitHub release.
That workflow also bumps up the major version tag, like v7
. In cases of failure, you could run this manually.
$ git checkout main
$ git fetch --tags && git pull
$ git tag --force v{major}
$ git push --force --tags
When the release is fully tagged and ready, we still need to submit it to the marketplace. You can do that by editing the published version on GitHub's release page. Just saving it again notifies the marketplace of the new version.