-
-
Notifications
You must be signed in to change notification settings - Fork 44
Release Cycle
svchot edited this page May 23, 2024
·
1 revision
These stages go in order, from local development, through to production deployment.
- Devs develop features on their local instance.
- Use
docker-compose.yml
setup for testing. - Once feature and testing complete, make a PR to the
development
branch.
- Once a PR is approved, it is merged to
development
. - This triggers a workflow to automatically deploy the code changes on the dev server.
- The purpose of this stage is for fast CI, i.e. the developer sees their code in action quickly.
- At a set interval (approx bi-weekly),
the updates made on
development
and frozen, tested, patched (if required), and merged into thestaging
branch via PR. - Once approved, the
staging
branch auto-deploys to the staging server. - The purpose of this stage is to regularly release versions of FMTM that power users (and the project owner) can test.
- Anyone who doesn't mind occasional breakage is welcome to use this server publicly.
- Hot fixes are also possible, if fixing some functionality is critical for FMTM to function.
- The staging server instance is thoroughly tested by the product owner, and bug reports filed.
- The release is hardened into longer interval (approx bi-monthly) production releases.
- A PR is made from
staging
tomain
branch. - Once approved and the code merged, a Github release is made.
- A release is available on Github, including all relevant release notes for what has been updated.
- The release will trigger the workflow to deploy to the production server.
- A feature demo release is a throwaway instance of FMTM with a particular purpose.
- Functionality is developed here for various reasons:
- Specific updates for a single project that won't be used elsewhere.
- Very fast updating of the server, without interfering with the typical release flow.
- The key point is that these branch instances are single use and will be shut down once the project has ended.
- The easiest approach is probably to:
- Create and login to a server.
- Run the bundled
feature-demo.sh
install script.
- Alternatively, a workflow can be made to auto-deploy:
- Triggering on a branch naming convention:
feature-demo/some-feature
. - The user will have to enter an SSH key into the Gitlab secrets.
- The workflow will deploy to the server remotely when the branch is pushed to.
- This approach is less preferred, as the user requires write access to the Github repo, but is under consideration.
- Triggering on a branch naming convention: