# Deployment process
# Overview
OfficeLife is deployed automatically on each commit in the main
branch in two environments:
- https://beta.officelife.io
- https://demo.officelife.io
We plan to disable this in the future to control which environment has which version, but for now, every single commit is pushed to production instantly.
# Create a release
OfficeLife uses semantic-release (opens new window) to manage releases.
It allows to create new releases based on the history of modifications since last release, and create a patch/minor/major release depending on some rules.
There are two ways to create a new release: create a pre-release or an official release.
# Create a pre-release
You can create a pre-release by pushing the main branch to one of these breanches:
- next
- next-major
- beta
- alpha
This will create a new GitHub pre-release.
# Create an official release
To create an official release (on main branch), go to Actions
> Release
(opens new window), then run the workflow against the main branch, as shown below:
# Steps
When a new release is created, semantic-release rules described in the .releaserc
(opens new window) file are applied.
Plugin | Description |
---|---|
@semantic-release/commit-analyzer | Analyse commit history to determine the next release version. |
@semantic-release/release-notes-generator | Generates the release note content. |
@semantic-release/changelog | Write down the release note in the CHANGELOG.md file. |
semantic-release-github-pullrequest | Create a pull request on the main branch to update the updated CHANGELOG.md file. |
The actions that will be run by the whole workflow are:
- semantic-release creates a new release in GitHub
- a pull request is created on the
main
branch to update theCHANGELOG.md
file - a package is built with all the dependencies and assets, which are uploaded as the release's asset files.