Skip to content

Commit 0857af2

Browse files
Enhance production deployment workflow by adding image push to container registry and Azure CLI steps for prod deployment
1 parent 82288c3 commit 0857af2

File tree

1 file changed

+64
-2
lines changed

1 file changed

+64
-2
lines changed

.github/workflows/Build-Test-And-Deploy.yaml

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
if: github.event_name != 'pull_request_target' && github.event_name != 'pull_request'
6262
uses: docker/build-push-action@v6
6363
with:
64-
tags: ${{ vars.DEVCONTAINER_REGISTRY }}/try:${{ github.sha }},${{ vars.DEVCONTAINER_REGISTRY }}/try:latest
64+
tags: ${{ vars.DEVCONTAINER_REGISTRY }}/try:${{ github.sha }},${{ vars.DEVCONTAINER_REGISTRY }}/try:latest,${{ vars.PRODCONTAINER_REGISTRY }}/try:${{ github.sha }},${{ vars.PRODCONTAINER_REGISTRY }}/try:latest
6565
file: ./Dockerfile
6666
context: .
6767
outputs: type=docker,dest=${{ github.workspace }}/tryimage.tar
@@ -129,7 +129,69 @@ jobs:
129129
inlineScript: |
130130
az config set extension.use_dynamic_install=yes_without_prompt
131131
az containerapp up -n $CONTAINER_APP_NAME -g $RESOURCEGROUP --image $REGISTRY_URL/try:${{ github.sha }} --environment $CONTAINER_APP_ENVIRONMENT --registry-server $REGISTRY_URL --ingress external --registry-username $ACR_USERNAME --registry-password $ACR_PASSWORD --target-port 80 --debug
132-
132+
133+
- name: Logout of Azure CLI
134+
if: always()
135+
uses: azure/CLI@v2
136+
with:
137+
inlineScript: |
138+
az logout
139+
az cache purge
140+
az account clear
141+
142+
deploy-production:
143+
if: github.event_name != 'pull_request_target' && github.event_name != 'pull_request'
144+
runs-on: ubuntu-latest
145+
needs: deploy-development
146+
environment:
147+
name: "Production"
148+
permissions:
149+
id-token: write
150+
contents: read
151+
152+
steps:
153+
- name: Azure Login
154+
uses: azure/login@v2
155+
with:
156+
client-id: ${{ secrets.ESSENTIALCSHARP_CLIENT_ID }}
157+
tenant-id: ${{ secrets.ESSENTIALCSHARP_TENANT_ID }}
158+
subscription-id: ${{ secrets.ESSENTIALCSHARP_SUBSCRIPTION_ID }}
159+
160+
- name: Download artifact
161+
uses: actions/download-artifact@v7
162+
with:
163+
name: tryimage
164+
path: ${{ github.workspace }}
165+
166+
- name: Load image
167+
run: |
168+
docker load --input ${{ github.workspace }}/tryimage.tar
169+
docker image ls -a
170+
171+
- name: Log in to container registry
172+
uses: docker/login-action@v3
173+
with:
174+
registry: ${{ vars.PRODCONTAINER_REGISTRY }}
175+
username: ${{ secrets.ESSENTIALCSHARP_ACR_USERNAME }}
176+
password: ${{ secrets.ESSENTIALCSHARP_ACR_PASSWORD }}
177+
178+
- name: Push Image to Container Registry
179+
run: docker push --all-tags ${{ vars.PRODCONTAINER_REGISTRY }}/try
180+
181+
- name: Create and Deploy to Container App
182+
uses: azure/CLI@v2
183+
env:
184+
CONTAINER_APP_NAME: ${{ vars.CONTAINER_APP_NAME }}
185+
RESOURCEGROUP: ${{ vars.RESOURCEGROUP }}
186+
CONTAINER_APP_ENVIRONMENT: ${{ vars.CONTAINER_APP_ENVIRONMENT }}
187+
REGISTRY_URL: ${{ vars.PRODCONTAINER_REGISTRY }}
188+
ACR_USERNAME: ${{ secrets.ESSENTIALCSHARP_ACR_USERNAME }}
189+
ACR_PASSWORD: ${{ secrets.ESSENTIALCSHARP_ACR_PASSWORD }}
190+
with:
191+
inlineScript: |
192+
az config set extension.use_dynamic_install=yes_without_prompt
193+
az containerapp up -n $CONTAINER_APP_NAME -g $RESOURCEGROUP --image $REGISTRY_URL/try:${{ github.sha }} --environment $CONTAINER_APP_ENVIRONMENT --registry-server $REGISTRY_URL --ingress external --registry-username $ACR_USERNAME --registry-password $ACR_PASSWORD --target-port 80 --debug
194+
133195
- name: Logout of Azure CLI
134196
if: always()
135197
uses: azure/CLI@v2

0 commit comments

Comments
 (0)