Skip to content

Commit c6ca895

Browse files
generate mock test
1 parent 3b748ba commit c6ca895

File tree

2 files changed

+162
-41
lines changed

2 files changed

+162
-41
lines changed

.github/workflows/cicd-2-publish.yaml

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ jobs:
7979

8080
- name: "Build lambda artefact"
8181
run: |
82-
make dependencies install-python
8382
make build
8483
8584
- name: "Upload lambda artefact for cross-workflow use"
@@ -88,35 +87,35 @@ jobs:
8887
name: lambda-${{ needs.metadata.outputs.version }}
8988
path: dist/lambda.zip
9089

91-
- name: "Download Built Lambdas"
92-
uses: actions/download-artifact@v5
93-
with:
94-
name: lambda-${{ needs.metadata.outputs.version }}
95-
path: ./build
96-
97-
- name: "Configure AWS Credentials"
98-
uses: aws-actions/configure-aws-credentials@v5
99-
with:
100-
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/service-roles/github-actions-api-deployment-role
101-
aws-region: eu-west-2
102-
103-
- name: "Terraform Apply"
104-
env:
105-
ENVIRONMENT: dev
106-
WORKSPACE: "default"
107-
TF_VAR_API_CA_CERT: ${{ secrets.API_CA_CERT }}
108-
TF_VAR_API_CLIENT_CERT: ${{ secrets.API_CLIENT_CERT }}
109-
TF_VAR_API_PRIVATE_KEY_CERT: ${{ secrets.API_PRIVATE_KEY_CERT }}
110-
TF_VAR_SPLUNK_HEC_TOKEN: ${{ secrets.SPLUNK_HEC_TOKEN }}
111-
TF_VAR_SPLUNK_HEC_ENDPOINT: ${{ secrets.SPLUNK_HEC_ENDPOINT }}
112-
113-
run: |
114-
mkdir -p ./build
115-
echo "Running: make terraform env=$ENVIRONMENT workspace=$WORKSPACE stack=networking tf-command=apply"
116-
make terraform env=$ENVIRONMENT stack=networking tf-command=apply workspace=$WORKSPACE
117-
echo "Running: make terraform env=$ENVIRONMENT workspace=$WORKSPACE stack=api-layer tf-command=apply"
118-
make terraform env=$ENVIRONMENT stack=api-layer tf-command=apply workspace=$WORKSPACE
119-
working-directory: ./infrastructure
90+
# - name: "Download Built Lambdas"
91+
# uses: actions/download-artifact@v5
92+
# with:
93+
# name: lambda-${{ needs.metadata.outputs.version }}
94+
# path: ./build
95+
#
96+
# - name: "Configure AWS Credentials"
97+
# uses: aws-actions/configure-aws-credentials@v5
98+
# with:
99+
# role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/service-roles/github-actions-api-deployment-role
100+
# aws-region: eu-west-2
101+
#
102+
# - name: "Terraform Apply"
103+
# env:
104+
# ENVIRONMENT: dev
105+
# WORKSPACE: "default"
106+
# TF_VAR_API_CA_CERT: ${{ secrets.API_CA_CERT }}
107+
# TF_VAR_API_CLIENT_CERT: ${{ secrets.API_CLIENT_CERT }}
108+
# TF_VAR_API_PRIVATE_KEY_CERT: ${{ secrets.API_PRIVATE_KEY_CERT }}
109+
# TF_VAR_SPLUNK_HEC_TOKEN: ${{ secrets.SPLUNK_HEC_TOKEN }}
110+
# TF_VAR_SPLUNK_HEC_ENDPOINT: ${{ secrets.SPLUNK_HEC_ENDPOINT }}
111+
#
112+
# run: |
113+
# mkdir -p ./build
114+
# echo "Running: make terraform env=$ENVIRONMENT workspace=$WORKSPACE stack=networking tf-command=apply"
115+
# make terraform env=$ENVIRONMENT stack=networking tf-command=apply workspace=$WORKSPACE
116+
# echo "Running: make terraform env=$ENVIRONMENT workspace=$WORKSPACE stack=api-layer tf-command=apply"
117+
# make terraform env=$ENVIRONMENT stack=api-layer tf-command=apply workspace=$WORKSPACE
118+
# working-directory: ./infrastructure
120119

121120
- name: "Tag the dev deployment"
122121
run: |
@@ -125,17 +124,17 @@ jobs:
125124
git tag ${{ needs.metadata.outputs.version }}
126125
git push origin ${{ needs.metadata.outputs.version }}
127126
128-
- name: "Notify Slack on PR merge"
129-
uses: slackapi/[email protected]
130-
with:
131-
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
132-
webhook-type: webhook-trigger
133-
payload: |
134-
status: "${{ job.status }}"
135-
link: "https://github.com/${{ github.repository }}/commit/${{ github.sha }}"
136-
Author: "${{ github.actor }}"
137-
title: "Pushed to main"
138-
version: "${{ needs.metadata.outputs.version }}"
127+
# - name: "Notify Slack on PR merge"
128+
# uses: slackapi/[email protected]
129+
# with:
130+
# webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
131+
# webhook-type: webhook-trigger
132+
# payload: |
133+
# status: "${{ job.status }}"
134+
# link: "https://github.com/${{ github.repository }}/commit/${{ github.sha }}"
135+
# Author: "${{ github.actor }}"
136+
# title: "Pushed to main"
137+
# version: "${{ needs.metadata.outputs.version }}"
139138

140139
# regression-tests:
141140
# name: "Regression Tests"

.github/workflows/mock_deploy.yaml

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
name: "mock deploy"
2+
3+
on:
4+
workflow_run:
5+
workflows: ["2. CD | Deploy to Dev"]
6+
types: [completed]
7+
8+
permissions:
9+
contents: read
10+
id-token: write
11+
actions: read
12+
13+
jobs:
14+
metadata:
15+
name: "Resolve metadata from triggering run"
16+
runs-on: ubuntu-latest
17+
if: ${{ github.event.workflow_run.conclusion == 'success' }}
18+
outputs:
19+
terraform_version: ${{ steps.vars.outputs.terraform_version }}
20+
tag: ${{ steps.tag.outputs.name }}
21+
steps:
22+
- name: "Checkout exact commit from CI/CD publish"
23+
uses: actions/checkout@v5
24+
with:
25+
ref: ${{ github.event.workflow_run.head_sha }}
26+
27+
- name: "Set CI/CD variables"
28+
id: vars
29+
run: |
30+
echo "terraform_version=$(grep '^terraform' .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT
31+
32+
- name: "Resolve the dev-* tag for this commit"
33+
id: tag
34+
run: |
35+
git fetch --tags --force
36+
SHA="${{ github.event.workflow_run.head_sha }}"
37+
TAG=$(git tag --points-at "$SHA" | grep '^dev-' | head -n1 || true)
38+
if [ -z "$TAG" ]; then
39+
echo "No dev-* tag found on $SHA" >&2
40+
exit 1
41+
fi
42+
echo "name=$TAG" >> $GITHUB_OUTPUT
43+
echo "Resolved tag: $TAG"
44+
45+
deploy:
46+
name: "Deploy to TEST (approval required)"
47+
runs-on: ubuntu-latest
48+
needs: [metadata]
49+
environment: test
50+
timeout-minutes: 10080
51+
permissions:
52+
id-token: write
53+
contents: read
54+
steps:
55+
- name: "Acquire deploy lock"
56+
uses: softprops/turnstyle@v3
57+
with:
58+
poll-interval-seconds: 10
59+
60+
- name: "Checkout same commit"
61+
uses: actions/checkout@v5
62+
with:
63+
ref: ${{ github.event.workflow_run.head_sha }}
64+
65+
# - name: "Setup Terraform"
66+
# uses: hashicorp/setup-terraform@v3
67+
# with:
68+
# terraform_version: ${{ needs.metadata.outputs.terraform_version }}
69+
70+
- name: "Configure AWS Credentials"
71+
uses: aws-actions/configure-aws-credentials@v5
72+
with:
73+
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/service-roles/github-actions-api-deployment-role
74+
aws-region: eu-west-2
75+
76+
- name: "Download lambda artefact from dev workflow"
77+
uses: actions/download-artifact@v5
78+
with:
79+
name: lambda-${{ needs.metadata.outputs.tag }}
80+
path: ./build
81+
run-id: ${{ github.event.workflow_run.id }}
82+
github-token: ${{ github.token }}
83+
84+
# - name: "Terraform Apply (TEST)"
85+
# env:
86+
# ENVIRONMENT: test
87+
# WORKSPACE: "default"
88+
# TF_VAR_API_CA_CERT: ${{ secrets.API_CA_CERT }}
89+
# TF_VAR_API_CLIENT_CERT: ${{ secrets.API_CLIENT_CERT }}
90+
# TF_VAR_API_PRIVATE_KEY_CERT: ${{ secrets.API_PRIVATE_KEY_CERT }}
91+
# TF_VAR_SPLUNK_HEC_TOKEN: ${{ secrets.SPLUNK_HEC_TOKEN }}
92+
# TF_VAR_SPLUNK_HEC_ENDPOINT: ${{ secrets.SPLUNK_HEC_ENDPOINT }}
93+
# run: |
94+
# mkdir -p ./build
95+
# echo "Deploying tag: ${{ needs.metadata.outputs.tag }}"
96+
# echo "Running: make terraform env=$ENVIRONMENT workspace=$WORKSPACE stack=networking tf-command=apply"
97+
# make terraform env=$ENVIRONMENT stack=networking tf-command=apply workspace=$WORKSPACE
98+
# echo "Running: make terraform env=$ENVIRONMENT workspace=$WORKSPACE stack=api-layer tf-command=apply"
99+
# make terraform env=$ENVIRONMENT stack=api-layer tf-command=apply workspace=$WORKSPACE
100+
# working-directory: ./infrastructure
101+
#
102+
# - name: "Extract S3 bucket name from Terraform output"
103+
# id: tf_output
104+
# run: |
105+
# BUCKET=$(terraform output -raw lambda_artifact_bucket)
106+
# echo "bucket_name=$BUCKET" >> $GITHUB_OUTPUT
107+
# working-directory: ./infrastructure/stacks/api-layer
108+
#
109+
# - name: "Upload lambda artifact to S3"
110+
# run: |
111+
# aws s3 cp ./build/lambda.zip \
112+
# s3://${{ steps.tf_output.outputs.bucket_name }}/artifacts/${{ needs.metadata.outputs.tag }}/lambda.zip \
113+
# --region eu-west-2
114+
115+
# regression-tests:
116+
# name: "Regression Tests"
117+
# needs: deploy
118+
# uses: ./.github/workflows/regression-tests.yml
119+
# with:
120+
# ENVIRONMENT: "test"
121+
# VERSION_NUMBER: "main"
122+
# secrets: inherit

0 commit comments

Comments
 (0)