Anzens/api
API Typescript interface
Pre conditions
The file swagger.json
MUST exist in the root folder of the project and it MUST contain a valid Swagger spec.
Releasing
Steps:
- Create a new branch with the version that you want to be based on the branch that is ready to production
git checkout -b release/v1.0.0 main
- Push your new branch
git push origin --follow-tags
- Prepare the version by running
npx release-it --ci --increment (major|minor|patch|pre)
Results:
- It will bump the
package.json
version
- It will push the branch to your current upstream
- It will provide a link to create the release on the Github web interface. I.e
🔗 https://github.com/Emurgo/sc-services/releases/new?tag=v1.0.3&title=Release+1.0.3&body=*+chore%3A+release+it+%28a731ba2%29%0A*+Merge+pull+request+%231+from+stackchain%2F1.0.3-rc.1+%28e44a317%29%0A*+feature%28ci%29%3A+pipelines+%28b0f8e46%29&prerelease=false
When creating the release on Github web interface or via cli gh
the option Pre-release
MUST be checked, if the build version is tagged as beta
, canary
or rc
, otherwise it will cause the Github workflow to fail when matching the version of the package.json
against the release version. This will force having the appropriate package version on the NPM repository and on the Github.
The same rule above should be applied when creating a production version, the Pre-release
options MUST NOT be checked.
The workflow will start the process of building and deploying it, only after the release is published (no longer set as a draft).
Post conditions
- New tag with the new version
- New branch tagged with the tag above
- New release using the tag above
On success
On error
- The workflow is red
- The package was not published
Not covered
Hotfixes for old versions won't work with this pipeline. It will need to be published manually.
Merge the release
The branch created in this process won't be merged automatically.