📋 Create Release Manifest - dvsa/des-workflow-actions GitHub Wiki
Description
This reusable workflow automates the creation of a release manifest for a DES backend service. It performs pre-creation checks to determine if a release build is required, builds the artefact for release if necessary (using this reusable workflow), and then creates and uploads the release manifest to AWS S3. Additionally, it sends a notification to Microsoft Teams upon completion.
All DES backend service release manifests within a component are then combined when a Terraform Plan is run for the UAT environment for that specific component. For example, when running a plan for the API component in UAT, this action will collate all API service release manifests and upload the tfvars file to S3.
Workflow Triggers
On Workflow Call
This workflow is called from the DES backend service repositories when a release tag is created (e.g. tags matching release-*). The tag should be created across all backend repositories using the cut-release.py script in the des-release-scripts repository found here.
Environment Variables
Name | Description |
---|---|
AWS_ACCOUNT_ID | AWS Account ID for deployment |
DVSA_AWS_REGION | AWS region for deployment |
ARTEFACT_S3 | S3 bucket for storing artefacts |
NVMRC | The version of NodeJS outlined in .nvmrc |
SERVICE_NAME | The microservice name outlined in package.json |
SHORT_COMMIT | The latest short commit on the current branch in the repository |
FILE_NAME | The name of the DES backend service release manifest file |
MSTEAMS_WEBHOOK_RELEASE_MANIFEST | Webhook URL for Microsoft Teams release manifest notifications |
Inputs
Name | Description | Options |
---|---|---|
component | The associated Terraform component for the service | api | drs | dms |
Notes
- This workflow assumes the presence of a
package.json
file and aserverless.yml
file in the repository. - It requires appropriate AWS credentials and permissions for accessing S3 and Secrets Manager.
- Release manifests are stored in AWS S3 for reference and tracking.
[!IMPORTANT] A Terraform plan will need to be run for each component in UAT to generate the release tfvar files - this automatically happens as part of the Deploy UAT workflow.