📋 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 a serverless.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.