We use githooks(github) to help clean up and enforce the workflow for developers. This is done with Husky.
NOTE: We prevent commits to master branch on local machine (so all changes to master are PRs on github). You may want to disable this for more rapid local development, you can just remove the configuration in package.json(github) that adds these hooks.
Before each commit, we want to verify that the build won't break. So we make sure to run the build process one more time with only the committed files before letting the commit go through:
- Stash uncommited changes
- Run linting/flow/compliation and tests with npm/webpack
- Pop uncommitted changes
We setup github actions on this project so we can enforce actions/checks and workflow processes on github.
On Master PR
For every PR against master, we spin up a server to build the project via node/webpack. We also lint the project at this point (with more stringent error rules?). This will help us catch any errors in the code and prevent any merges to master that will break
This project defines the Github Labels in a YAML file that is managed by the Github Labeler Action. Any labels that are not defined in this file will be removed every time this action is run. This does not affect PRs
On Merge to Master
Whenever we merge a PR to master, we want to update the documentation based on the changes the user made in the commits. We run a git action to handle this as well:
- Collect README files and update wiki
- Fix/remove links in Wiki
- Build documentation and generate commit
Github Specific Files
Whenever a PR is made on Github, the body/description will be pre-populated with the contents in
- IDEA: Version increase/changelog generation