Skip to content

Commit

Permalink
ci: ensure unique revisions for deployments (#1211)
Browse files Browse the repository at this point in the history
<!--- Provide a general summary of your changes in the Title above -->

## Description

There was an issue where if we re-run the same workflow for deployment,
it would fail because of using the same revision suffix. Changing to
passing in a revision suffix and using workflow run id and workflow
attempt to ensure uniqueness.

<!--- Describe your changes in detail -->

## Related Issue(s)

- #{issue number}

## Verification

- [ ] **Your** code builds clean without any errors or warnings
- [ ] Manual testing done (required)
- [ ] Relevant automated test added (if you find this hard, leave it and
we'll help out)

## Documentation

- [ ] Documentation is updated (either in `docs`-directory, Altinnpedia
or a separate linked PR in
[altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if
applicable)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new environment variable `REVISION_SUFFIX` for improved
tracking of deployment revisions.
- Added a `revisionSuffix` parameter across various Bicep configuration
files to enhance deployment customization and versioning.
- Standardized deployment names to include environment and version for
consistency.

- **Chores**
- Enhanced deployment workflow structure without altering the overall
functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
  • Loading branch information
arealmaas authored Oct 2, 2024
1 parent 54b6fab commit 69e7fe7
Show file tree
Hide file tree
Showing 13 changed files with 28 additions and 4 deletions.
6 changes: 5 additions & 1 deletion .azure/applications/graphql/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ param location string
@minLength(3)
param apimIp string

@description('The suffix for the revision of the container app')
@minLength(3)
param revisionSuffix string

@description('CPU and memory resources for the container app')
param resources object?

Expand Down Expand Up @@ -87,7 +91,7 @@ module containerApp '../../modules/containerApp/main.bicep' = {
apimIp: apimIp
tags: tags
resources: resources
revisionSuffix: imageTag
revisionSuffix: revisionSuffix
}
}

Expand Down
1 change: 1 addition & 0 deletions .azure/applications/graphql/prod.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'prod'
param location = 'norwayeast'
param apimIp = '51.120.88.54'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
1 change: 1 addition & 0 deletions .azure/applications/graphql/staging.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'staging'
param location = 'norwayeast'
param apimIp = '51.13.86.131'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
1 change: 1 addition & 0 deletions .azure/applications/graphql/test.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'test'
param location = 'norwayeast'
param apimIp = '51.120.88.69'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
6 changes: 5 additions & 1 deletion .azure/applications/web-api-eu/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ param location string
@minLength(3)
param apimIp string

@description('The suffix for the revision of the container app')
@minLength(3)
param revisionSuffix string

@description('CPU and memory resources for the container app')
param resources object?

Expand Down Expand Up @@ -90,7 +94,7 @@ module containerApp '../../modules/containerApp/main.bicep' = {
apimIp: apimIp
tags: tags
resources: resources
revisionSuffix: imageTag
revisionSuffix: revisionSuffix
}
}

Expand Down
1 change: 1 addition & 0 deletions .azure/applications/web-api-eu/prod.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'prod'
param location = 'norwayeast'
param apimIp = '51.120.88.54'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
1 change: 1 addition & 0 deletions .azure/applications/web-api-eu/staging.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'staging'
param location = 'norwayeast'
param apimIp = '51.13.86.131'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
1 change: 1 addition & 0 deletions .azure/applications/web-api-eu/test.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'test'
param location = 'norwayeast'
param apimIp = '51.120.88.69'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
6 changes: 5 additions & 1 deletion .azure/applications/web-api-so/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ param location string
@minLength(3)
param apimIp string

@description('The suffix for the revision of the container app')
@minLength(3)
param revisionSuffix string

@description('CPU and memory resources for the container app')
param resources object?

Expand Down Expand Up @@ -94,7 +98,7 @@ module containerApp '../../modules/containerApp/main.bicep' = {
apimIp: apimIp
tags: tags
resources: resources
revisionSuffix: imageTag
revisionSuffix: revisionSuffix
}
}

Expand Down
1 change: 1 addition & 0 deletions .azure/applications/web-api-so/prod.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'prod'
param location = 'norwayeast'
param apimIp = '51.120.88.54'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
1 change: 1 addition & 0 deletions .azure/applications/web-api-so/staging.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'staging'
param location = 'norwayeast'
param apimIp = '51.13.86.131'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
1 change: 1 addition & 0 deletions .azure/applications/web-api-so/test.bicepparam
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ param environment = 'test'
param location = 'norwayeast'
param apimIp = '51.120.88.69'
param imageTag = readEnvironmentVariable('IMAGE_TAG')
param revisionSuffix = readEnvironmentVariable('REVISION_SUFFIX')

// secrets
param environmentKeyVaultName = readEnvironmentVariable('AZURE_ENVIRONMENT_KEY_VAULT_NAME')
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/action-deploy-apps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ jobs:
permissions:
id-token: write
contents: read
env:
REVISION_SUFFIX: "${{ github.run_id }}-${{ inputs.version }}-${{ github.run_attempt}}"
steps:
- name: "Checkout GitHub Action"
uses: actions/checkout@v4
Expand All @@ -159,14 +161,14 @@ jobs:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Dryrun Deploy app ${{ matrix.name }}(${{ inputs.environment }})
uses: azure/arm-deploy@v2
if: ${{ inputs.dryRun }}
id: deploy-dry-run
env:
# parameters
IMAGE_TAG: ${{ inputs.version }}
REVISION_SUFFIX: ${{ env.REVISION_SUFFIX }}
# secrets
AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }}
AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }}
Expand All @@ -190,6 +192,7 @@ jobs:
env:
# parameters
IMAGE_TAG: ${{ inputs.version }}
REVISION_SUFFIX: ${{ env.REVISION_SUFFIX }}
# secrets
AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }}
AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }}
Expand Down

0 comments on commit 69e7fe7

Please sign in to comment.