Add a CI job to release Secure schemas
The purpose of this MR is to simplify and democratize the Secure Report Format release process. This is achieved by adding a manual job at the end of the master CI Pipeline.
Triggering the manual job executes the release script, which does the following:
- Reads the most recent CHANGELOG entry to determine the version and description.
- Verifies that the version has not already been released.
- Creates a Git tag for the version, pointing to the commit SHA that ran on the master pipeline.
- Creates a GitLab release based on the new Git tag.
- Adds release notes containing CHANGELOG description, and links to download the schemas.
This strategy has some in-built protection mechanisms:
- Branches cannot be released, because the pipeline is only available on the master branch.
- The release job only exists on master, therefore code must be reviewed/approved/merged using the usual process prior to release.
- The process helps ensure releases are immutable.
- Tests must pass before the schema can be released.
Documentation has been updated to reflect the new release process. This release process is heavily borrowed from the DAST release process.
This has been tested on a project that is a fork of this project.
Edited by Cameron Swords