Skip to content

Commit 3c95048

Browse files
committed
Migrate to GPT-5.4 models and refactor deployment
Broad update aligning the accelerator with GPT-5.4/GPT-5.4-mini models and a refactored deployment pipeline: - Update all Bicep/ARM templates, params, docs, and quota scripts to deploy `gpt-5.4` and `gpt-5.4-mini` (replacing gpt-4.1/o4-mini), with capacities 150/100. - Add Azure Container Registry provisioning/reuse to AVM and vanilla Bicep, with ACR pull role assignments and managed-identity image pulls; add `Build-And-Push-Images` post-provision scripts (PS1/sh) and `azure.yaml` postdeploy hooks. - Rework CI workflows (azure-dev, deploy, deploy-waf, docker-build) to use OIDC login, new capacity vars, owner tags; remove create-release workflow. - Rewrite DeploymentGuide with step-by-step environment options. - Backend: add ImageAgent, markdown table normalization, human-readable agent display names, mandatory-agent plan enforcement, auto-approve replans, and elapsed-time UI indicators. - Frontend: resolve API asset URLs for images, persist/restore selected team, add ProcessingStatusIndicator and elapsed timers. - Update tests accordingly.
2 parents 7594126 + 8eda09e commit 3c95048

65 files changed

Lines changed: 12934 additions & 3322 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/azd-template-validation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
3535
AZURE_ENV_AI_SERVICE_LOCATION: ${{ vars.AZURE_AI_DEPLOYMENT_LOCATION }}
3636
AZURE_ENV_GPT_MODEL_CAPACITY: 1
37-
AZURE_ENV_MODEL_4_1_CAPACITY: 1 # keep low to avoid potential quota issues
37+
AZURE_ENV_MODEL_5_4_CAPACITY: 1 # keep low to avoid potential quota issues
3838
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3939

4040
- name: print result

.github/workflows/azure-dev.yml

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,59 @@
1-
name: Azure Template Validation
1+
name: Azure Dev Deploy
2+
23
on:
34
workflow_dispatch:
45

56
permissions:
67
contents: read
78
id-token: write
8-
pull-requests: write
99

1010
jobs:
11-
template_validation_job:
11+
deploy:
1212
runs-on: ubuntu-latest
13-
name: template validation
13+
environment: production
14+
env:
15+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
16+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
17+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
18+
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
19+
AZURE_ENV_AI_SERVICE_LOCATION: ${{ vars.AZURE_AI_DEPLOYMENT_LOCATION }}
20+
AZURE_ENV_GPT_MODEL_CAPACITY: 1
21+
AZURE_ENV_MODEL_5_4_CAPACITY: 1
22+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
1424
steps:
15-
- uses: actions/checkout@v4
16-
17-
- uses: microsoft/template-validation-action@Latest
18-
id: validation
19-
env:
20-
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
21-
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
22-
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
23-
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
24-
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
25-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26-
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
27-
28-
- name: print result
29-
run: cat ${{ steps.validation.outputs.resultFile }}
25+
- name: Checkout Code
26+
uses: actions/checkout@v6
27+
28+
- name: Set timestamp and env name
29+
run: |
30+
HHMM=$(date -u +'%H%M')
31+
echo "AZURE_ENV_NAME=azd-${{ vars.AZURE_ENV_NAME }}-${HHMM}" >> $GITHUB_ENV
32+
33+
- name: Install azd
34+
uses: Azure/setup-azd@v2
35+
36+
- name: Login to Azure
37+
uses: azure/login@v3
38+
with:
39+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
40+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
41+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
42+
43+
- name: Login to AZD
44+
shell: bash
45+
run: |
46+
azd auth login \
47+
--client-id "$AZURE_CLIENT_ID" \
48+
--federated-credential-provider "github" \
49+
--tenant-id "$AZURE_TENANT_ID"
50+
51+
- name: Provision and Deploy
52+
shell: bash
53+
run: |
54+
if ! azd env select "$AZURE_ENV_NAME"; then
55+
azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt
56+
fi
57+
azd config set defaults.subscription "$AZURE_SUBSCRIPTION_ID"
58+
azd env set AZURE_ENV_AI_SERVICE_LOCATION="$AZURE_ENV_AI_SERVICE_LOCATION"
59+
azd up --no-prompt

.github/workflows/create-release.yml

Lines changed: 0 additions & 64 deletions
This file was deleted.

.github/workflows/deploy-waf.yml

Lines changed: 47 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,52 @@
1-
name: Validate WAF Deployment
1+
name: Validate WAF Deployment v4
22

3+
permissions:
4+
id-token: write
5+
contents: read
6+
actions: read
37
on:
48
push:
59
branches:
610
- main
11+
paths:
12+
- 'src/**'
13+
- 'infra/**'
14+
- 'azure.yaml'
15+
- 'azure_custom.yaml'
16+
- '.github/workflows/deploy-waf.yml'
717
schedule:
818
- cron: "0 11,23 * * *" # Runs at 11:00 AM and 11:00 PM GMT
919

1020
jobs:
1121
deploy:
1222
runs-on: ubuntu-latest
23+
environment: production
24+
env:
25+
GPT_5_4_MINI_MIN_CAPACITY: 1
26+
GPT_5_4_MIN_CAPACITY: 1
1327
steps:
1428
- name: Checkout Code
15-
uses: actions/checkout@v3
29+
uses: actions/checkout@v6
30+
31+
- name: Login to Azure
32+
uses: azure/login@v3
33+
with:
34+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
35+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
36+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
1637

1738
- name: Run Quota Check
1839
id: quota-check
40+
env:
41+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
42+
GPT_5_4_MINI_MIN_CAPACITY: ${{ env.GPT_5_4_MINI_MIN_CAPACITY }}
43+
GPT_5_4_MIN_CAPACITY: ${{ env.GPT_5_4_MIN_CAPACITY }}
44+
AZURE_REGIONS: ${{ vars.AZURE_REGIONS }}
1945
run: |
20-
export AZURE_CLIENT_ID=${{ secrets.AZURE_CLIENT_ID }}
21-
export AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}
22-
export AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}
23-
export AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
24-
export GPT_MIN_CAPACITY="150"
25-
export AZURE_REGIONS="${{ vars.AZURE_REGIONS }}"
26-
27-
chmod +x infra/scripts/checkquota.sh
28-
if ! infra/scripts/checkquota.sh; then
46+
chmod +x infra/scripts/pre-provision/checkquota.sh
47+
if ! infra/scripts/pre-provision/checkquota.sh; then
2948
# If quota check fails due to insufficient quota, set the flag
30-
if grep -q "No region with sufficient quota found" infra/scripts/checkquota.sh; then
49+
if grep -q "No region with sufficient quota found" infra/scripts/pre-provision/checkquota.sh; then
3150
echo "QUOTA_FAILED=true" >> $GITHUB_ENV
3251
fi
3352
exit 1 # Fail the pipeline if any other failure occurs
@@ -57,15 +76,6 @@ jobs:
5776
echo "Selected Region: $VALID_REGION"
5877
echo "AZURE_LOCATION=$VALID_REGION" >> $GITHUB_ENV
5978
60-
- name: Setup Azure CLI
61-
run: |
62-
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
63-
az --version # Verify installation
64-
65-
- name: Login to Azure
66-
run: |
67-
az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
68-
6979
- name: Install Bicep CLI
7080
run: az bicep install
7181

@@ -82,14 +92,19 @@ jobs:
8292
- name: Check and Create Resource Group
8393
id: check_create_rg
8494
run: |
85-
set -e
86-
echo "Checking if resource group exists..."
95+
set -e
96+
OWNER_TAG_VALUE="${{ github.actor }}"
97+
echo "🔍 Checking if resource group '${{ env.RESOURCE_GROUP_NAME }}' exists..."
8798
rg_exists=$(az group exists --name ${{ env.RESOURCE_GROUP_NAME }})
8899
if [ "$rg_exists" = "false" ]; then
89-
echo "Resource group does not exist. Creating..."
90-
az group create --name ${{ env.RESOURCE_GROUP_NAME }} --location ${{ env.AZURE_LOCATION }} || { echo "Error creating resource group"; exit 1; }
100+
echo "📦 Resource group does not exist. Creating new resource group '${{ env.RESOURCE_GROUP_NAME }}' in location '${{ env.AZURE_LOCATION }}'..."
101+
echo "🏷️ Adding Owner tag: Owner=${OWNER_TAG_VALUE}"
102+
az group create --name ${{ env.RESOURCE_GROUP_NAME }} --location ${{ env.AZURE_LOCATION }} --tags "Owner=${OWNER_TAG_VALUE}" || { echo "❌ Error creating resource group"; exit 1; }
103+
echo "✅ Resource group '${{ env.RESOURCE_GROUP_NAME }}' created successfully."
91104
else
92-
echo "Resource group already exists."
105+
echo "✅ Resource group '${{ env.RESOURCE_GROUP_NAME }}' already exists."
106+
echo "🏷️ Merging Owner tag on existing resource group: Owner=${OWNER_TAG_VALUE}"
107+
az group update --name "${{ env.RESOURCE_GROUP_NAME }}" --set tags.Owner="${OWNER_TAG_VALUE}" --output none || echo "⚠️ Warning: failed to update Owner tag on existing resource group '${{ env.RESOURCE_GROUP_NAME }}'."
93108
fi
94109
95110
- name: Generate Unique Solution Prefix
@@ -105,23 +120,25 @@ jobs:
105120
id: deploy
106121
run: |
107122
set -e
108-
# Generate current timestamp in desired format: YYYY-MM-DDTHH:MM:SS.SSSSSSSZ
123+
124+
# Generate current timestamp in desired format: YYYY-MM-DDTHH:MM:SS.SSSSSSSZ
109125
current_date=$(date -u +"%Y-%m-%dT%H:%M:%S.%7NZ")
110-
126+
111127
az deployment group create \
112128
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
113129
--template-file infra/main.bicep \
114130
--parameters \
115131
solutionName=${{ env.SOLUTION_PREFIX }} \
116132
location="${{ env.AZURE_LOCATION }}" \
117133
azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \
118-
gptModelCapacity=5 \
134+
gptDeploymentCapacity=${{ env.GPT_5_4_MINI_MIN_CAPACITY }} \
135+
gpt5_4ModelCapacity=${{ env.GPT_5_4_MIN_CAPACITY }} \
119136
enableTelemetry=true \
120137
enableMonitoring=true \
121138
enablePrivateNetworking=true \
122139
enableScalability=true \
123140
createdBy="Pipeline" \
124-
tags="{'SecurityControl':'Ignore','Purpose':'Deploying and Cleaning Up Resources for Validation','CreatedDate':'$current_date'}"
141+
tags="{'Purpose':'Deploying and Cleaning Up Resources for Validation','CreatedDate':'$current_date'}"
125142
126143
127144
- name: Send Notification on Failure

0 commit comments

Comments
 (0)