-
Notifications
You must be signed in to change notification settings - Fork 11
Release Process
We currently have two environments that have automated deployments: staging and production. Staging deployments happen for every PR and production deployments happen every day. This page is a quick overview of how our release process works. For more info, take a look at the CryoET Data Portal Release Process document.
https://frontend.cryoet.staging.si.czi.technology
Deployments to staging happen for every PR that is merged into main
. This is beneficial because it allows us to test new features in a production-like environment before it hits production. The staging deployment workflow is defined in staging-deploy.yml.After staging has been deployed, our E2E test suite is run to verify that everything is still working correctly.
Every PR merged into main
also kicks off the release notes workflow. This job uses release-please to automatically create a release PR that does several things:
- Bumps the version in
frontend/package.json
- Bumps the version in
release-please.manifest.json
- Updates the
frontend/CHANGELOG.md
file
The changelog is created using the PR titles for every merged PR after the last release. We use conventional commits for categorizing each PR:
At the moment, release PRs require manual approvals before the workflow runs in order for the release to go through. This is a limitation in GitHub actions because it's not capable of approving PRs, so we would eventually need to create a GitHub bot that has permission to approve PRs for our repo.
We currently support the following conventional commit prefixes:
Type | Description |
---|---|
Feat | ✨ Features |
Fix | 🐞 Bug Fixes |
Perf | ⚡️ Performance Improvements |
Revert | ↩️ Reverts |
Docs | 📝 Documentation |
Style | 💅 Styles |
Chore | 🧹 Miscellaneous Chores |
Refactor | ♻️ Code Refactoring |
Test | 🧪 Tests |
Build | 🛠️ Build System |
Ci | ⚙ Continuous Integration |
https://cryoetdataportal.czscience.com
Deployments to production happen daily at 10am / 11am PST depending on daylight savings. Prior to a deployment, make sure that release PR is approved before the deployment workflow starts. For production deployments, there are several components that make up the entire process defined in prod-deploy.yml:
- Run staging E2E tests
- Merge release PR
- Push release tag in format
web-v{version}
- Update release PR label to
autorelease: tagged
- Deploys to production
- Run prod E2E tests
- Notify #team-sci-imaging-data-portal on slack if deployment succeeded or failed
Manual deployments to production can be accomplished by using Run workflow
button on the workflow page:
https://github.com/chanzuckerberg/cryoet-data-portal/actions/workflows/prod-deploy.yml