Skip to content

Commit c0f809d

Browse files
committed
fix: Inject tenantId from secrets into Bicep parameters
- Add parameter preparation step in workflow templates to merge tenantId from secrets - Remove tenantId from job outputs (secrets can't be passed through outputs) - Use jq to merge user parameters with tenantId before deployment - Fixes double-slash in OpenID config URL (https://login.microsoftonline.com//v2.0)
1 parent 07d2dbf commit c0f809d

File tree

7 files changed

+86
-51
lines changed

7 files changed

+86
-51
lines changed

.github/workflows/deploy-activity-api.yml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
run-unit-tests:
3333
name: Run Unit Tests with Coverage
3434
needs: env-setup
35-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-unit-tests.yml@main
35+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-unit-tests.yml@013-apim-managed-identity
3636
with:
3737
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
3838
working-directory: ./src/Biotrackr.Activity.Api/Biotrackr.Activity.Api.UnitTests
@@ -42,7 +42,7 @@ jobs:
4242
run-contract-tests:
4343
name: Run API Contract Tests
4444
needs: env-setup
45-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-contract-tests.yml@main
45+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-contract-tests.yml@013-apim-managed-identity
4646
with:
4747
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
4848
working-directory: ./src/Biotrackr.Activity.Api/Biotrackr.Activity.Api.IntegrationTests
@@ -51,7 +51,7 @@ jobs:
5151
build-container-image-dev:
5252
name: Build and Push Container Image
5353
needs: [run-unit-tests, run-contract-tests]
54-
uses: willvelida/biotrackr/.github/workflows/template-acr-push-image.yml@main
54+
uses: willvelida/biotrackr/.github/workflows/template-acr-push-image.yml@013-apim-managed-identity
5555
with:
5656
working-directory: ./src/Biotrackr.Activity.Api
5757
app-name: biotrackr-activity-api
@@ -67,7 +67,6 @@ jobs:
6767
runs-on: ubuntu-latest
6868
outputs:
6969
loginServer: ${{ steps.get-acr-server.outputs.loginServer }}
70-
tenantId: ${{ secrets.AZURE_TENANT_ID }}
7170
steps:
7271
- name: Azure login
7372
uses: azure/login@v2
@@ -85,17 +84,17 @@ jobs:
8584
lint:
8685
name: Run Bicep Linter
8786
needs: retrieve-container-image-dev
88-
uses: willvelida/biotrackr/.github/workflows/template-bicep-linter.yml@main
87+
uses: willvelida/biotrackr/.github/workflows/template-bicep-linter.yml@013-apim-managed-identity
8988
with:
9089
template-file: './infra/apps/activity-api/main.bicep'
9190

9291
validate:
9392
name: Validate Template
9493
needs: [lint, retrieve-container-image-dev]
95-
uses: willvelida/biotrackr/.github/workflows/template-bicep-validate.yml@main
94+
uses: willvelida/biotrackr/.github/workflows/template-bicep-validate.yml@013-apim-managed-identity
9695
with:
9796
template-file: './infra/apps/activity-api/main.bicep'
98-
parameters-file: ./infra/apps/activity-api/main.dev.bicepparam
97+
parameters-file: ./infra/apps/activity-api/main.dev.bicepparam
9998
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-activity-api:${{ github.sha }}"}'
10099
scope: resourceGroup
101100
secrets:
@@ -107,12 +106,12 @@ jobs:
107106
preview:
108107
name: Preview Changes
109108
needs: [validate, retrieve-container-image-dev]
110-
uses: willvelida/biotrackr/.github/workflows/template-bicep-whatif.yml@main
109+
uses: willvelida/biotrackr/.github/workflows/template-bicep-whatif.yml@013-apim-managed-identity
111110
with:
112111
scope: resourceGroup
113112
template-file: './infra/apps/activity-api/main.bicep'
114113
parameters-file: ./infra/apps/activity-api/main.dev.bicepparam
115-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-activity-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
114+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-activity-api:${{ github.sha }}"}'
116115
secrets:
117116
client-id: ${{ secrets.AZURE_CLIENT_ID }}
118117
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
@@ -122,11 +121,11 @@ jobs:
122121
deploy-dev:
123122
name: Deploy Template to Dev
124123
needs: [preview, retrieve-container-image-dev]
125-
uses: willvelida/biotrackr/.github/workflows/template-bicep-deploy.yml@main
124+
uses: willvelida/biotrackr/.github/workflows/template-bicep-deploy.yml@013-apim-managed-identity
126125
with:
127126
template-file: './infra/apps/activity-api/main.bicep'
128127
parameters-file: ./infra/apps/activity-api/main.dev.bicepparam
129-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-activity-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
128+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-activity-api:${{ github.sha }}"}'
130129
scope: resourceGroup
131130
environment: dev
132131
secrets:
@@ -138,7 +137,7 @@ jobs:
138137
run-e2e-tests:
139138
name: Run E2E Tests Against Dev
140139
needs: [deploy-dev, env-setup]
141-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-e2e-tests.yml@main
140+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-e2e-tests.yml@013-apim-managed-identity
142141
with:
143142
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
144143
working-directory: ./src/Biotrackr.Activity.Api/Biotrackr.Activity.Api.IntegrationTests

.github/workflows/deploy-food-api.yml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
run-unit-tests:
3333
name: Run Unit Tests with Coverage
3434
needs: env-setup
35-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-unit-tests.yml@main
35+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-unit-tests.yml@013-apim-managed-identity
3636
with:
3737
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
3838
working-directory: ./src/Biotrackr.Food.Api/Biotrackr.Food.Api.UnitTests
@@ -42,7 +42,7 @@ jobs:
4242
run-contract-tests:
4343
name: Run API Contract Tests
4444
needs: env-setup
45-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-contract-tests.yml@main
45+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-contract-tests.yml@013-apim-managed-identity
4646
with:
4747
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
4848
working-directory: ./src/Biotrackr.Food.Api/Biotrackr.Food.Api.IntegrationTests
@@ -51,7 +51,7 @@ jobs:
5151
build-container-image-dev:
5252
name: Build and Push Container Image
5353
needs: [run-unit-tests, run-contract-tests]
54-
uses: willvelida/biotrackr/.github/workflows/template-acr-push-image.yml@main
54+
uses: willvelida/biotrackr/.github/workflows/template-acr-push-image.yml@013-apim-managed-identity
5555
with:
5656
working-directory: ./src/Biotrackr.Food.Api
5757
app-name: biotrackr-food-api
@@ -67,7 +67,6 @@ jobs:
6767
runs-on: ubuntu-latest
6868
outputs:
6969
loginServer: ${{ steps.get-acr-server.outputs.loginServer }}
70-
tenantId: ${{ secrets.AZURE_TENANT_ID }}
7170
steps:
7271
- name: Azure login
7372
uses: azure/login@v2
@@ -85,18 +84,18 @@ jobs:
8584
lint:
8685
name: Run Bicep Linter
8786
needs: retrieve-container-image-dev
88-
uses: willvelida/biotrackr/.github/workflows/template-bicep-linter.yml@main
87+
uses: willvelida/biotrackr/.github/workflows/template-bicep-linter.yml@013-apim-managed-identity
8988
with:
9089
template-file: './infra/apps/food-api/main.bicep'
9190

9291
validate:
9392
name: Validate Template
9493
needs: [lint, retrieve-container-image-dev]
95-
uses: willvelida/biotrackr/.github/workflows/template-bicep-validate.yml@main
94+
uses: willvelida/biotrackr/.github/workflows/template-bicep-validate.yml@013-apim-managed-identity
9695
with:
9796
template-file: './infra/apps/food-api/main.bicep'
98-
parameters-file: ./infra/apps/food-api/main.dev.bicepparam
99-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-food-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
97+
parameters-file: ./infra/apps/food-api/main.dev.bicepparam
98+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-food-api:${{ github.sha }}"}'
10099
scope: resourceGroup
101100
secrets:
102101
client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -107,12 +106,12 @@ jobs:
107106
preview:
108107
name: Preview Changes
109108
needs: [validate, retrieve-container-image-dev]
110-
uses: willvelida/biotrackr/.github/workflows/template-bicep-whatif.yml@main
109+
uses: willvelida/biotrackr/.github/workflows/template-bicep-whatif.yml@013-apim-managed-identity
111110
with:
112111
scope: resourceGroup
113112
template-file: './infra/apps/food-api/main.bicep'
114113
parameters-file: ./infra/apps/food-api/main.dev.bicepparam
115-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-food-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
114+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-food-api:${{ github.sha }}"}'
116115
secrets:
117116
client-id: ${{ secrets.AZURE_CLIENT_ID }}
118117
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
@@ -122,11 +121,11 @@ jobs:
122121
deploy-dev:
123122
name: Deploy Template to Dev
124123
needs: [preview, retrieve-container-image-dev]
125-
uses: willvelida/biotrackr/.github/workflows/template-bicep-deploy.yml@main
124+
uses: willvelida/biotrackr/.github/workflows/template-bicep-deploy.yml@013-apim-managed-identity
126125
with:
127126
template-file: './infra/apps/food-api/main.bicep'
128127
parameters-file: ./infra/apps/food-api/main.dev.bicepparam
129-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-food-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
128+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-food-api:${{ github.sha }}"}'
130129
scope: resourceGroup
131130
environment: dev
132131
secrets:
@@ -138,7 +137,7 @@ jobs:
138137
run-e2e-tests:
139138
name: Run E2E Tests Against Dev
140139
needs: [deploy-dev, env-setup]
141-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-e2e-tests.yml@main
140+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-e2e-tests.yml@013-apim-managed-identity
142141
with:
143142
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
144143
working-directory: ./src/Biotrackr.Food.Api/Biotrackr.Food.Api.IntegrationTests

.github/workflows/deploy-sleep-api.yml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
run-unit-tests:
3636
name: Run Unit Tests with Coverage
3737
needs: env-setup
38-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-unit-tests.yml@main
38+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-unit-tests.yml@013-apim-managed-identity
3939
with:
4040
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
4141
working-directory: ./src/Biotrackr.Sleep.Api/Biotrackr.Sleep.Api.UnitTests
@@ -45,7 +45,7 @@ jobs:
4545
run-contract-tests:
4646
name: Run API Contract Tests
4747
needs: env-setup
48-
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-contract-tests.yml@main
48+
uses: willvelida/biotrackr/.github/workflows/template-dotnet-run-contract-tests.yml@013-apim-managed-identity
4949
with:
5050
dotnet-version: ${{ needs.env-setup.outputs.dotnet-version }}
5151
working-directory: ./src/Biotrackr.Sleep.Api/Biotrackr.Sleep.Api.IntegrationTests
@@ -83,7 +83,6 @@ jobs:
8383
runs-on: ubuntu-latest
8484
outputs:
8585
loginServer: ${{ steps.get-acr-server.outputs.loginServer }}
86-
tenantId: ${{ secrets.AZURE_TENANT_ID }}
8786
steps:
8887
- name: Azure login
8988
uses: azure/login@v2
@@ -101,18 +100,18 @@ jobs:
101100
lint:
102101
name: Run Bicep Linter
103102
needs: retrieve-container-image-dev
104-
uses: willvelida/biotrackr/.github/workflows/template-bicep-linter.yml@main
103+
uses: willvelida/biotrackr/.github/workflows/template-bicep-linter.yml@013-apim-managed-identity
105104
with:
106105
template-file: './infra/apps/sleep-api/main.bicep'
107106

108107
validate:
109108
name: Validate Template
110109
needs: [lint, retrieve-container-image-dev]
111-
uses: willvelida/biotrackr/.github/workflows/template-bicep-validate.yml@main
110+
uses: willvelida/biotrackr/.github/workflows/template-bicep-validate.yml@013-apim-managed-identity
112111
with:
113112
template-file: './infra/apps/sleep-api/main.bicep'
114-
parameters-file: ./infra/apps/sleep-api/main.dev.bicepparam
115-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-sleep-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
113+
parameters-file: ./infra/apps/sleep-api/main.dev.bicepparam
114+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-sleep-api:${{ github.sha }}"}'
116115
scope: resourceGroup
117116
secrets:
118117
client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -123,11 +122,11 @@ jobs:
123122
preview:
124123
name: Preview Changes
125124
needs: [validate, retrieve-container-image-dev]
126-
uses: willvelida/biotrackr/.github/workflows/template-bicep-whatif.yml@main
125+
uses: willvelida/biotrackr/.github/workflows/template-bicep-whatif.yml@013-apim-managed-identity
127126
with:
128127
template-file: './infra/apps/sleep-api/main.bicep'
129128
parameters-file: ./infra/apps/sleep-api/main.dev.bicepparam
130-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-sleep-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
129+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-sleep-api:${{ github.sha }}"}'
131130
scope: resourceGroup
132131
secrets:
133132
client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -138,11 +137,11 @@ jobs:
138137
deploy-dev:
139138
name: Deploy Template to Dev
140139
needs: [preview, retrieve-container-image-dev]
141-
uses: willvelida/biotrackr/.github/workflows/template-bicep-deploy.yml@main
140+
uses: willvelida/biotrackr/.github/workflows/template-bicep-deploy.yml@013-apim-managed-identity
142141
with:
143142
template-file: './infra/apps/sleep-api/main.bicep'
144143
parameters-file: ./infra/apps/sleep-api/main.dev.bicepparam
145-
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-sleep-api:${{ github.sha }}", "tenantId": "${{ needs.retrieve-container-image-dev.outputs.tenantId }}"}'
144+
parameters: '{"imageName": "${{ needs.retrieve-container-image-dev.outputs.loginServer }}/biotrackr-sleep-api:${{ github.sha }}"}'
146145
scope: resourceGroup
147146
environment: dev
148147
secrets:

0 commit comments

Comments
 (0)