Skip to content

Adding short video component (#327) #3316

Adding short video component (#327)

Adding short video component (#327) #3316

name: Deploy POC application on Azure Web App x Docker Container
on:
push:
branches: [main]
workflow_dispatch:
inputs:
environment:
description: 'Environment to deploy to'
required: true
default: 'staging'
type: choice
options:
- staging
- production
tina_branch:
description: 'Tina branch to use'
required: false
default: ''
type: string
branch_name:
description: 'Source branch name that triggered this deployment'
required: false
default: ''
type: string
concurrency:
group: ${{ github.ref_name }}-${{ github.event.inputs.environment || 'staging' }}-deployment
cancel-in-progress: true
permissions:
id-token: write
contents: read
actions: write
jobs:
build:
name: Build and Push Container
uses: ./.github/workflows/build-artifacts.yml
with:
tag: ${{ github.event.inputs.environment || 'staging' }}
tina_branch: ${{ github.event.inputs.tina_branch }}
source_branch: ${{ github.event.inputs.branch_name }}
secrets:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
TINA_TOKEN: ${{ secrets.TINA_TOKEN }}
TINA_SEARCH_TOKEN: ${{ secrets.TINA_SEARCH_TOKEN }}
TINA_WEBHOOK_SECRET: ${{ secrets.TINA_WEBHOOK_SECRET }}
NEXT_PUBLIC_TINA_CLIENT_ID: ${{ secrets.NEXT_PUBLIC_TINA_CLIENT_ID }}
NEXT_PUBLIC_ALGOLIA_APP_ID: ${{ secrets.NEXT_PUBLIC_ALGOLIA_APP_ID }}
NEXT_PUBLIC_ALGOLIA_ADMIN_KEY: ${{ secrets.NEXT_PUBLIC_ALGOLIA_ADMIN_KEY }}
NEXT_PUBLIC_ALGOLIA_INDEX_NAME: ${{ secrets.NEXT_PUBLIC_ALGOLIA_INDEX_NAME }}
NEXT_PUBLIC_ALGOLIA_API_KEY: ${{ secrets.NEXT_PUBLIC_ALGOLIA_API_KEY }}
NEXT_PUBLIC_API_BASE_URL: ${{ vars.NEXT_PUBLIC_API_BASE_URL }}
deploy:
name: Deploy to Azure Web App
runs-on: ubuntu-latest
needs: build
environment: ${{ github.event.inputs.environment || 'staging' }}
steps:
- name: Use build info from build job
id: build_info
run: |
# Use build info from the build job outputs
BUILD_TIMESTAMP="${{ needs.build.outputs.build_timestamp }}"
BUILD_DATE="${{ needs.build.outputs.build_date }}"
COMMIT_HASH="${{ needs.build.outputs.commit_hash }}"
VERSION_DEPLOYED="${{ needs.build.outputs.version_deployed }}"
DEPLOYMENT_URL="${{ needs.build.outputs.deployment_url }}"
echo "BUILD_TIMESTAMP=$BUILD_TIMESTAMP" >> $GITHUB_ENV
echo "BUILD_DATE=$BUILD_DATE" >> $GITHUB_ENV
echo "COMMIT_HASH=$COMMIT_HASH" >> $GITHUB_ENV
echo "VERSION_DEPLOYED=$VERSION_DEPLOYED" >> $GITHUB_ENV
echo "DEPLOYMENT_URL=$DEPLOYMENT_URL" >> $GITHUB_ENV
echo "🏗️ Using Build Info from Build Job:"
echo " Timestamp: $BUILD_TIMESTAMP"
echo " Date: $BUILD_DATE"
echo " Version: $VERSION_DEPLOYED"
echo " Commit: $COMMIT_HASH"
echo " Deployment URL: $DEPLOYMENT_URL"
- name: Log deployment info
run: |
echo "🚀 Deploying POC Application"
echo "Triggered by source branch: ${{ github.event.inputs.branch_name || github.ref_name }}"
echo "Target environment: ${{ github.event.inputs.environment || 'staging' }}"
echo "Tina content branch: ${{ github.event.inputs.tina_branch || 'default' }}"
echo "Build timestamp: ${{ env.BUILD_TIMESTAMP }}"
echo "Build version: ${{ env.VERSION_DEPLOYED }}"
- name: Azure CLI - Login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Configure Auth0 and Build Info app settings
run: |
az webapp config appsettings set \
--name ${{ secrets.AZURE_WEBAPP_NAME }} \
--resource-group ${{ secrets.AZURE_RESOURCE_GROUP }} \
--settings \
TINA_WEBHOOK_SECRET=${{ secrets.TINA_WEBHOOK_SECRET }} \
AUTH0_DOMAIN=${{ vars.AUTH0_DOMAIN }} \
AUTH0_CLIENT_ID=${{ vars.AUTH0_CLIENT_ID }} \
AUTH0_CLIENT_SECRET=${{ secrets.AUTH0_CLIENT_SECRET }} \
AUTH0_SECRET=${{ secrets.AUTH0_SECRET }} \
AUTH0_REDIRECT_URI=${{ vars.AUTH0_REDIRECT_URI }} \
AUTH0_AUDIENCE=${{ vars.AUTH0_AUDIENCE }} \
GITHUB_API_PAT=${{ secrets.GH_API_PAT }} \
CRM_TENANT=${{ vars.CRM_TENANT }} \
CRM_TENANT_ID=${{ vars.CRM_TENANT_ID }} \
CRM_APP_ID=${{ vars.CRM_APP_ID }} \
CRM_SCOPE=${{ vars.CRM_SCOPE }} \
CRM_VIEW_CURRENT=${{ vars.CRM_VIEW_CURRENT }} \
CRM_VIEW_PAST=${{ vars.CRM_VIEW_PAST }} \
CRM_APP_SECRET=${{ secrets.CRM_APP_SECRET }} \
NEXT_PUBLIC_API_BASE_URL=${{ vars.NEXT_PUBLIC_API_BASE_URL }} \
BUILD_TIMESTAMP=${{ env.BUILD_TIMESTAMP }} \
VERSION_DEPLOYED=${{ env.VERSION_DEPLOYED }} \
DEPLOYMENT_URL="${{ env.DEPLOYMENT_URL }}" \
BUILD_DATE="${{ env.BUILD_DATE }}" \
NEXT_PUBLIC_TINA_BRANCH=${{ vars.NEXT_PUBLIC_TINA_BRANCH }} \
COMMIT_HASH=${{ env.COMMIT_HASH }} \
--output none
- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v3
with:
app-name: ${{ secrets.AZURE_WEBAPP_NAME }}
images: ${{ needs.build.outputs.image_tag }}
- name: Verify deployment
run: |
echo "✅ Application deployed successfully!"
echo "Image: ${{ needs.build.outputs.image_tag }}"
echo "App URL: https://${{ secrets.AZURE_WEBAPP_NAME }}.azurewebsites.net"
echo "Source: ${{ github.event.inputs.branch_name || github.ref_name }}"
echo "Build Info:"
echo " 📅 Deployed: ${{ env.BUILD_DATE }}"
echo " 🏷️ Version: ${{ env.VERSION_DEPLOYED }}"
echo " 🔗 Build Details: ${{ env.DEPLOYMENT_URL }}"