diff --git a/.github/workflows/Build-Test-And-Deploy.yaml b/.github/workflows/Build-Test-And-Deploy.yaml index 115e58af9..ba7f49a26 100644 --- a/.github/workflows/Build-Test-And-Deploy.yaml +++ b/.github/workflows/Build-Test-And-Deploy.yaml @@ -63,7 +63,7 @@ jobs: if: github.event_name != 'pull_request_target' && github.event_name != 'pull_request' uses: docker/build-push-action@v6 with: - tags: ${{ vars.DEVCONTAINER_REGISTRY }}/try:${{ github.sha }},${{ vars.DEVCONTAINER_REGISTRY }}/try:latest + tags: ${{ vars.DEVCONTAINER_REGISTRY }}/try:${{ github.sha }},${{ vars.DEVCONTAINER_REGISTRY }}/try:latest,${{ vars.PRODCONTAINER_REGISTRY }}/try:${{ github.sha }},${{ vars.PRODCONTAINER_REGISTRY }}/try:latest file: ./Dockerfile context: . outputs: type=docker,dest=${{ github.workspace }}/tryimage.tar @@ -190,12 +190,56 @@ jobs: inlineScript: | az config set extension.use_dynamic_install=yes_without_prompt 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 - - - name: Logout of Azure CLI - if: always() + + deploy-production: + if: github.event_name != 'pull_request_target' && github.event_name != 'pull_request' + runs-on: ubuntu-latest + needs: deploy-development + environment: + name: "Production" + permissions: + id-token: write + contents: read + + steps: + - name: Azure Login + uses: azure/login@v2 + with: + client-id: ${{ secrets.ESSENTIALCSHARP_CLIENT_ID }} + tenant-id: ${{ secrets.ESSENTIALCSHARP_TENANT_ID }} + subscription-id: ${{ secrets.ESSENTIALCSHARP_SUBSCRIPTION_ID }} + + - name: Download artifact + uses: actions/download-artifact@v7 + with: + name: tryimage + path: ${{ github.workspace }} + + - name: Load image + run: | + docker load --input ${{ github.workspace }}/tryimage.tar + docker image ls -a + + - name: Log in to container registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.PRODCONTAINER_REGISTRY }} + username: ${{ secrets.ESSENTIALCSHARP_ACR_USERNAME }} + password: ${{ secrets.ESSENTIALCSHARP_ACR_PASSWORD }} + + - name: Push Image to Container Registry + run: docker push --all-tags ${{ vars.PRODCONTAINER_REGISTRY }}/try + + - name: Create and Deploy to Container App uses: azure/CLI@v2 + env: + CONTAINER_APP_NAME: ${{ vars.CONTAINER_APP_NAME }} + RESOURCEGROUP: ${{ vars.RESOURCEGROUP }} + CONTAINER_APP_ENVIRONMENT: ${{ vars.CONTAINER_APP_ENVIRONMENT }} + REGISTRY_URL: ${{ vars.PRODCONTAINER_REGISTRY }} + ACR_USERNAME: ${{ secrets.ESSENTIALCSHARP_ACR_USERNAME }} + ACR_PASSWORD: ${{ secrets.ESSENTIALCSHARP_ACR_PASSWORD }} with: inlineScript: | - az logout - az cache purge - az account clear + az config set extension.use_dynamic_install=yes_without_prompt + 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