Skip to content

Commit 3ee907e

Browse files
committed
Added Action yaml for test environment
1 parent 496dc37 commit 3ee907e

3 files changed

Lines changed: 111 additions & 0 deletions

File tree

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
name: Deploy MessageQueueProcessor to Test
2+
on:
3+
push:
4+
branches:
5+
- RC
6+
7+
permissions:
8+
id-token: write
9+
contents: read
10+
11+
jobs:
12+
terraform:
13+
runs-on: ubuntu-latest
14+
environment: test
15+
name: 'Terraform MessageQueueProcessor'
16+
env:
17+
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
18+
ARM_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
19+
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
20+
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
21+
22+
steps:
23+
- uses: actions/checkout@v2
24+
25+
- name: Set up Terraform
26+
uses: hashicorp/setup-terraform@v3
27+
with:
28+
terraform_wrapper: false # Skip wrapper script installation
29+
30+
- name: 'Terraform init'
31+
id: init
32+
run: |
33+
cd LearningHub.Nhs.MessageQueueProcessor/Terraform
34+
terraform init "-backend-config=backend-test.tfvars"
35+
36+
- name: 'Terraform apply'
37+
id: apply
38+
run: |
39+
cd LearningHub.Nhs.MessageQueueProcessor/Terraform
40+
terraform apply -auto-approve \
41+
-var="ResourceGroupName=${{ vars.AZURE_RESOURCE_GROUP_NAME }}" \
42+
-var="ResourceGroupLocation=${{ vars.AZURE_RESOURCE_GROUP_LOCATION }}" \
43+
-var="SqlmiName=${{ vars.SQLMI_NAME }}" \
44+
-var="SQLAdministratorLogin=${{ vars.SQL_ADMINISTRATOR_LOGIN }}" \
45+
-var="SQLAdministratorLoginPassword=${{ secrets.SQL_ADMINISTRATOR_LOGIN_PASSWORD }}" \
46+
-var="SQLSkuName=${{ vars.SQL_SKU_NAME }}" \
47+
-var="SQLStorageSize=${{ vars.SQL_STORAGE_SIZE }}" \
48+
-var="SQLVcores=${{ vars.SQL_VCORES }}" \
49+
-var="Environment=Test"
50+
51+
build_and_deploy:
52+
needs: terraform
53+
runs-on: ubuntu-latest
54+
environment: test
55+
name: 'Build and deploy the MessageQueueProcessor'
56+
env:
57+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_CLIENT_ID }}
58+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
59+
60+
steps:
61+
- name: Checkout code
62+
uses: actions/checkout@v2
63+
64+
- name: Setup .NET
65+
uses: actions/setup-dotnet@v4
66+
with:
67+
dotnet-version: '8.0.x'
68+
69+
- name: Add Azure artifact
70+
run: dotnet nuget add source 'https://pkgs.dev.azure.com/e-LfH/_packaging/LearningHubFeed/nuget/v3/index.json' --name 'LearningHubFeed' --username 'colin.beeby' --password ${{ secrets.AZURE_DEVOPS_PAT }} --store-password-in-clear-text
71+
72+
- name: Restore dependencies
73+
run: |
74+
cd LearningHub.Nhs.MessageQueueProcessor
75+
dotnet restore
76+
77+
- name: Replace values in appsettings.json
78+
run : |
79+
cd LearningHub.Nhs.MessageQueueProcessor
80+
sed -i -e 's|INSTRUMENTATION_KEY|${{ secrets.APPLICATION_INSIGHTS_INSTRUMENTATION_KEY }}|g' appsettings.json
81+
sed -i -e 's|BASE_URL|${{ vars.SETTINGS_BASE_URL }}|g' appsettings.json
82+
sed -i -e 's|API_KEY|${{ secrets.SETTINGS_API_KEY }}|g' appsettings.json
83+
84+
- name: Build project
85+
run: dotnet build
86+
87+
- name: Publish Project
88+
run: dotnet publish --output ./publish
89+
90+
- name: Zip published output
91+
run: |
92+
cd publish
93+
zip -r ../functionapp.zip .
94+
95+
- name: 'Az CLI login'
96+
uses: azure/login@v1
97+
with:
98+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
99+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
100+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
101+
102+
- name: Deploy to Azure Function App
103+
uses: Azure/Functions-action@v1
104+
with:
105+
app-name: 'MessageQueueProcessorApp'
106+
package: './functionapp.zip'
107+
publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
key="MessageQueueProcessor.prod.terraform.tfstate"
2+
storage_account_name="learninghubmoodleprod"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
key="MessageQueueProcessor.test.terraform.tfstate"
2+
storage_account_name="userprofilesa11"

0 commit comments

Comments
 (0)