DP-187 (WIP) Combine jobs #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI/CD Pipeline | |
on: | |
push: | |
branches: [DP-187] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: '8.0.x' | |
- name: Build .NET Project | |
run: | | |
dotnet tool restore | |
dotnet restore | |
dotnet build | |
- name: Build Docker Images | |
run: make build-docker | |
- name: Save Docker Images | |
run: | | |
docker save -o cdp-images.tar cabinetoffice/cdp-organisation-information-migrations:latest cabinetoffice/cdp-data-sharing:latest cabinetoffice/cdp-forms:latest cabinetoffice/cdp-organisation-app:latest cabinetoffice/cdp-organisation:latest cabinetoffice/cdp-person:latest cabinetoffice/cdp-tenant:latest cabinetoffice/cdp-authority:latest | |
- name: Upload Docker Images as Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: docker-images | |
path: cdp-images.tar | |
test: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Docker Images | |
uses: actions/download-artifact@v2 | |
with: | |
name: docker-images | |
- name: Load Docker Images | |
run: docker load -i cdp-images.tar | |
- name: Start services | |
run: make up | |
- name: Run Tests | |
run: | | |
dotnet test --logger trx --results-directory TestResults | |
- name: Stop services | |
run: make down | |
deploy: | |
runs-on: ubuntu-latest | |
needs: test | |
if: github.ref == 'refs/heads/DP-187' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Docker Images | |
uses: actions/download-artifact@v2 | |
with: | |
name: docker-images | |
- name: Load Docker Images | |
run: docker load -i cdp-images.tar | |
- name: Set up AWS CLI | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: eu-west-2 | |
- name: Login to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Tag and Push Docker Images | |
run: | | |
IMAGE_VERSION=$(date +%Y%m%d%H%M%S) | |
for image in cabinetoffice/cdp-organisation-information-migrations cabinetoffice/cdp-data-sharing cabinetoffice/cdp-forms cabinetoffice/cdp-organisation-app cabinetoffice/cdp-organisation cabinetoffice/cdp-person cabinetoffice/cdp-tenant cabinetoffice/cdp-authority; do | |
CLEAN_IMAGE_NAME=$(echo $image | sed 's/^cabinetoffice\///') | |
docker tag $image:latest ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.eu-west-2.amazonaws.com/$CLEAN_IMAGE_NAME:$IMAGE_VERSION | |
docker push ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.eu-west-2.amazonaws.com/$CLEAN_IMAGE_NAME:$IMAGE_VERSION | |
done | |
- name: Create Git Tag | |
run: | | |
IMAGE_VERSION=$(date +%Y%m%d%H%M%S) | |
git config --global user.name "github-actions" | |
git config --global user.email "github-actions@github.com" | |
git tag ${IMAGE_VERSION} | |
git push origin ${IMAGE_VERSION} | |
- name: Store Version in SSM Parameter Store | |
run: | | |
IMAGE_VERSION=$(date +%Y%m%d%H%M%S) | |
aws ssm put-parameter --name "cdp-sirsi-service-version" --value "${IMAGE_VERSION}" --type String --overwrite |