Skip to content

Contributing to Companion

Will Haese-Hill edited this page Mar 28, 2024 · 4 revisions

Interaction with this repository should follow the usual guidelines such as:

  • work in personal forks
  • commit into feature branches
  • issue pull requests, merge if tests pass

Please do not push to master directly, unless issuing a hotfix.

Continuous Integration

We use GitHub Actions for automating testing and release process.

  1. Any PR to master branch will trigger the test-on-pr.yml workflow, which runs the test suite as well as a short pipeline run with default parameters.

  2. When something is pushed to master (whether by PR merge or stand-alone hotfix push), the release-on-merge.yml workflow is triggered. This will analyse the commit message to determine whether the change constitutes a major, minor or patch (see Angular's commit message guidelines), create the appropriate tag, bump the version number in .version with an automated commit, and finally create a draft release (for major or minor changes only). E.g. if the following commit message is detected as part of the push to v1.0.1

    feature: this is a minor change

    a tag would be created and a release would be drafted for v1.1.0. If an emergency hotfix is then pushed directly to master with commit message

    fix: this is a hotfix

    a tag would be created for v1.1.1, but there would be no draft release (this would have to be created manually by the developer) (for major change, we recommend using the breaking type).

  3. When a release is published (e.g. a draft release is converted to a full release manually by the developer), the docker-push-on-release.yml workflow is triggered. This will build a new Docker image and push to the uofgiii/companion repo on Docker Hub (tagged with its version number and also latest).

Clone this wiki locally