CI/CD YT01 (1.18.1) #14
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
# Deploys the created release to yt01 | |
name: CI/CD YT01 | |
run-name: CI/CD YT01 ${{ github.event.client_payload.version && format('({0})', github.event.client_payload.version) || '' }} | |
on: | |
repository_dispatch: | |
types: [release_created] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref_name }} | |
jobs: | |
get-versions-from-github: | |
name: Get Latest Deployed Version Info from GitHub | |
uses: ./.github/workflows/workflow-get-latest-deployed-version-info-from-github.yml | |
with: | |
environment: yt01 | |
secrets: | |
GH_TOKEN: ${{ secrets.RELEASE_VERSION_STORAGE_PAT }} | |
check-for-changes: | |
name: Check for changes | |
needs: [get-versions-from-github] | |
uses: ./.github/workflows/workflow-check-for-changes.yml | |
with: | |
infra_base_sha: ${{ needs.get-versions-from-github.outputs.infra_version_sha }} | |
apps_base_sha: ${{ needs.get-versions-from-github.outputs.apps_version_sha }} | |
deploy-infrastructure: | |
uses: ./.github/workflows/workflow-deploy-infrastructure.yml | |
needs: [check-for-changes] | |
if: ${{ github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasInfrastructureChanges == 'true' }} | |
secrets: | |
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} | |
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | |
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
AZURE_SOURCE_KEY_VAULT_NAME: ${{ secrets.AZURE_SOURCE_KEY_VAULT_NAME }} | |
AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID }} | |
AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP: ${{ secrets.AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP }} | |
AZURE_CERTIFICATE_KEY_VAULT_NAME: ${{ secrets.AZURE_CERTIFICATE_KEY_VAULT_NAME }} | |
AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY }} | |
with: | |
environment: yt01 | |
region: norwayeast | |
version: ${{ github.event.client_payload.version }} | |
ref: "refs/tags/v${{ github.event.client_payload.version }}" | |
store-infra-version: | |
name: Store Latest Deployed Infra Version as GitHub Variable | |
needs: [deploy-infrastructure] | |
if: ${{ needs.deploy-infrastructure.result == 'success' }} | |
uses: ./.github/workflows/workflow-store-github-env-variable.yml | |
with: | |
variable_name: LATEST_DEPLOYED_INFRA_VERSION | |
variable_value: ${{ github.event.client_payload.version }} | |
environment: yt01 | |
secrets: | |
GH_TOKEN: ${{ secrets.RELEASE_VERSION_STORAGE_PAT }} | |
deploy-apps: | |
name: Deploy apps to YT01 | |
needs: | |
[ | |
check-for-changes, | |
deploy-infrastructure, | |
] | |
if: ${{ always() && !failure() && !cancelled() && (github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasApplicationChanges == 'true') }} | |
uses: ./.github/workflows/workflow-deploy-apps.yml | |
secrets: | |
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} | |
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | |
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
AZURE_RESOURCE_GROUP_NAME: ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} | |
AZURE_ENVIRONMENT_KEY_VAULT_NAME: ${{ secrets.AZURE_ENVIRONMENT_KEY_VAULT_NAME }} | |
AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }} | |
AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }} | |
AZURE_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY: ${{ secrets.AZURE_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY }} | |
AZURE_APP_CONFIGURATION_NAME: ${{ secrets.AZURE_APP_CONFIGURATION_NAME }} | |
with: | |
environment: yt01 | |
region: norwayeast | |
version: ${{ github.event.client_payload.version }} | |
runMigration: ${{ github.event_name == 'workflow_dispatch' || needs.check-for-changes.outputs.hasMigrationChanges == 'true' }} | |
ref: "refs/tags/v${{ github.event.client_payload.version }}" | |
store-apps-version: | |
name: Store Latest Deployed Apps Version as GitHub Variable | |
needs: [deploy-apps] | |
if: ${{ always() && !failure() && needs.deploy-apps.outputs.deployment_executed == 'true' }} | |
uses: ./.github/workflows/workflow-store-github-env-variable.yml | |
with: | |
variable_name: LATEST_DEPLOYED_APPS_VERSION | |
variable_value: ${{ github.event.client_payload.version }} | |
environment: yt01 | |
secrets: | |
GH_TOKEN: ${{ secrets.RELEASE_VERSION_STORAGE_PAT }} | |
send-slack-message-on-failure: | |
name: Send Slack message on failure | |
needs: [ | |
deploy-infrastructure, | |
deploy-apps, | |
] | |
if: ${{ always() && failure() && !cancelled() }} | |
uses: ./.github/workflows/workflow-send-ci-cd-status-slack-message.yml | |
with: | |
environment: yt01 | |
infra_status: ${{ needs.deploy-infrastructure.result }} | |
apps_status: ${{ needs.deploy-apps.result }} | |
secrets: | |
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | |
SLACK_CHANNEL_ID: ${{ secrets.SLACK_CHANNEL_ID_FOR_CI_CD_STATUS }} |