|
67 | 67 | --platform linux/amd64,linux/arm64 \ |
68 | 68 | --build-arg VERSION=${{ inputs.version }} \ |
69 | 69 | -t ${{ env.UNIQUE_PREFIX }}${{ env.ENVIRONMENT }}.azurecr.io/${{ inputs.image_name }}:${{ inputs.version }} \ |
70 | | - -t ${{ env.UNIQUE_PREFIX }}${{ env.ENVIRONMENT }}.azurecr.io/${{ inputs.image_name }}:latest \ |
71 | 70 | -f ${{ inputs.docker_file }} \ |
72 | 71 | --push . |
73 | 72 | docker buildx rm |
@@ -106,19 +105,48 @@ jobs: |
106 | 105 | env: |
107 | 106 | UNIQUE_PREFIX: ${{ vars.UNIQUE_PREFIX }} |
108 | 107 | ENVIRONMENT: "prod" |
| 108 | + STAGING_ENVIRONMENT: "stage" |
109 | 109 | CLUSTER_LOCATION_ACRONYM: ${{ vars.PRODUCTION_CLUSTER1_LOCATION_ACRONYM }} |
110 | 110 | SERVICE_PRINCIPAL_ID: ${{ vars.PRODUCTION_SERVICE_PRINCIPAL_ID }} |
| 111 | + STAGING_SERVICE_PRINCIPAL_ID: ${{ vars.STAGING_SERVICE_PRINCIPAL_ID }} |
111 | 112 | TENANT_ID: ${{ vars.TENANT_ID }} |
112 | 113 | SUBSCRIPTION_ID: ${{ vars.PRODUCTION_SUBSCRIPTION_ID }} |
| 114 | + STAGING_SUBSCRIPTION_ID: ${{ vars.STAGING_SUBSCRIPTION_ID }} |
113 | 115 |
|
114 | 116 | steps: |
115 | | - - name: Login to Azure |
| 117 | + - name: Login to Azure (Staging) |
| 118 | + uses: azure/login@v2 |
| 119 | + with: |
| 120 | + client-id: ${{ env.STAGING_SERVICE_PRINCIPAL_ID }} |
| 121 | + tenant-id: ${{ env.TENANT_ID }} |
| 122 | + subscription-id: ${{ env.STAGING_SUBSCRIPTION_ID }} |
| 123 | + |
| 124 | + - name: Get Access Token for Staging Azure Subscription |
| 125 | + id: staging_tokens |
| 126 | + run: | |
| 127 | + STAGING_TOKEN=$(az account get-access-token --resource https://management.azure.com --query accessToken -o tsv) |
| 128 | + echo "::add-mask::$STAGING_TOKEN" |
| 129 | + echo "access_token=$STAGING_TOKEN" >> $GITHUB_OUTPUT |
| 130 | + |
| 131 | + - name: Login to Azure (Production) |
116 | 132 | uses: azure/login@v2 |
117 | 133 | with: |
118 | 134 | client-id: ${{ env.SERVICE_PRINCIPAL_ID }} |
119 | 135 | tenant-id: ${{ env.TENANT_ID }} |
120 | 136 | subscription-id: ${{ env.SUBSCRIPTION_ID }} |
121 | 137 |
|
| 138 | + - name: Login to ACR |
| 139 | + run: az acr login --name ${{ env.UNIQUE_PREFIX }}${{ env.ENVIRONMENT }} |
| 140 | + |
| 141 | + - name: Import Container Image from Staging to Production |
| 142 | + run: | |
| 143 | + az acr import \ |
| 144 | + --name ${{ env.UNIQUE_PREFIX }}${{ env.ENVIRONMENT }} \ |
| 145 | + --source ${{ env.UNIQUE_PREFIX }}${{ env.STAGING_ENVIRONMENT }}.azurecr.io/${{ inputs.image_name }}:${{ inputs.version }} \ |
| 146 | + --image ${{ inputs.image_name }}:${{ inputs.version }} \ |
| 147 | + --password ${{ steps.staging_tokens.outputs.access_token }} \ |
| 148 | + --force |
| 149 | +
|
122 | 150 | - name: Deploy Container |
123 | 151 | run: | |
124 | 152 | SUFFIX=$(echo "${{ inputs.version }}" | sed 's/\./-/g') |
|
0 commit comments