✂️ Release Cut - dvsa/des-workflow-actions GitHub Wiki

Description

This workflows enables the creation of a release branch and/or release tag across all frontend and/or backend repositories contained within the repositories.json stored in AWS Secrets Manager. The base-branch input is required when creating a release branch to indicate whether it should be cut from the default branch, or a previous release branch. The workflow includes a step to validate that the input branches match the pattern 'release.x.x.x'.

Release tags and release notes are automatically generated. Once a tag is generated for a repository, the 📋 Create Release Manifest workflow will build an artefact if one does not exist and generate the tfvars for that service for later use.

Workflow Triggers

On Workflow Call

This workflow is called from the des-devops repository when a release branch is required and/or when a release tag needs to be cut.

Environment Variables

Name Description
GH_TOKEN The GitHub token used for authentication

Inputs

Name Description Options
base-branch The name of the base branch to create the release branch from N/A
release-branch The name of the release branch to be created N/A
create-release-branch Whether to create the release branch true | false
create-release-tag Whether to create the release tag true | false
release-type What repositories to perform actions on frontend | backend | full

Notes

  • The 'default' base branch input is transformed for each repository to the corresponding base branch detailed in the repo object in the repositories.json
  • Supports the addition of new repositories being added to the repositories.json by falling back to the default branch on branch creation, and by setting the previous release tag (used for generating release changelog) to an empty string, which results in the --notes-start-tag argument not being set
  • Obtains list of release branches and tags from the first repo within the repositories.json for a release component to limit number of API calls made

[!IMPORTANT] When updating the repositories.json secret to add an additional repository, do not replace the first object in the corresponding component array (frontend/backend) as the release tag & branch history is pulled from the first object in the component array.