Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
a4806a4
feat: Enhance deployment workflows with image model selection and quo…
Vamshi-Microsoft Feb 11, 2026
bdc5267
feat: Add support for DevContainer deployment and enhance input valid…
Vamshi-Microsoft Feb 11, 2026
8be055c
Added azureAiServiceLocation to select the avaible region for Ai rela…
Vamshi-Microsoft Feb 11, 2026
4e85870
refactor: Remove image model region constraints and validation functi…
Vamshi-Microsoft Feb 11, 2026
4f41599
chore: Update permissions to allow package write access in deployment…
Vamshi-Microsoft Feb 11, 2026
f8b42b0
chore: Update permissions to allow package write access for devcontai…
Vamshi-Microsoft Feb 11, 2026
6e02aa9
chore: Add package write permission for deploy workflows
Vamshi-Microsoft Feb 11, 2026
ae3b3f1
Siwtch to content-gen directory
Vamshi-Microsoft Feb 11, 2026
69ca6a2
set acrName and image tags
Vamshi-Microsoft Feb 11, 2026
29a674d
fix: Update account name in resource group generation
Vamshi-Microsoft Feb 11, 2026
c1f101b
changed tag
Vamshi-Microsoft Feb 11, 2026
ef674ae
feat: Add role assignment step for deployment workflows
Vamshi-Microsoft Feb 11, 2026
63a8195
fix: Temporarily disable E2E tests in deployment workflow
Vamshi-Microsoft Feb 11, 2026
a130507
fix: Remove role assignment steps from deployment workflows
Vamshi-Microsoft Feb 11, 2026
f4b0703
Update location syntax for windows workflow
Vamshi-Microsoft Feb 11, 2026
a20ea21
Changed workflow name
Vamshi-Microsoft Feb 11, 2026
df66848
fix: Set PYTHONUTF8 environment variable in Windows deployment job
Vamshi-Microsoft Feb 11, 2026
b82ff6e
fix: Update environment variable references in deployment workflows
Vamshi-Microsoft Feb 11, 2026
07b4f39
Minor fix
Vamshi-Microsoft Feb 11, 2026
5ea20f1
Changed main.paramter Names
Vamshi-Microsoft Feb 11, 2026
c52964d
Update API version and payload for DALL-E 3 image generation
Ragini-Microsoft Feb 11, 2026
1a8dca2
fix: Update API version and payload for dall-e-3 image generation
Avijit-Microsoft Feb 11, 2026
533d0a6
Test
Vamshi-Microsoft Feb 13, 2026
9855cd9
fix: Remove 'eastus2' from the list as it has ResourcesForSkuUnavaila…
Vamshi-Microsoft Feb 13, 2026
c874150
Added Quotacheck for Auto Triggers as well
Vamshi-Microsoft Feb 13, 2026
de258f9
minor fix
Vamshi-Microsoft Feb 13, 2026
e3b16b1
Merge branch 'microsoft:main' into main
Vamshi-Microsoft Feb 13, 2026
6161601
revert changes in old archived doc-gen
Vamshi-Microsoft Feb 13, 2026
7f15892
minor fix
Vamshi-Microsoft Feb 13, 2026
7ea4359
minor fix
Vamshi-Microsoft Feb 13, 2026
165e0ce
Update .github/workflows/job-docker-build.yml
Vamshi-Microsoft Feb 13, 2026
7032c97
Update content-gen/scripts/checkquota.sh
Vamshi-Microsoft Feb 13, 2026
f15eba0
fixed Copilet suggestions
Vamshi-Microsoft Feb 13, 2026
25ad76a
Merge branch 'main' of https://github.com/Vamshi-Microsoft/document-g…
Vamshi-Microsoft Feb 13, 2026
48d06b9
Added CustomizingAzdParamters readme file
Vamshi-Microsoft Feb 13, 2026
419faf2
Merge pull request #704 from Vamshi-Microsoft/main
Vamshi-Microsoft Feb 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
name: Deploy-Test-Cleanup (v2) Linux
name: Deploy-Test-Cleanup (v2)
on:
pull_request:
branches:
- main
paths:
- 'src/frontend/**'
- 'src/**/*.py'
- 'src/requirements*.txt'
- 'src/WebApp.Dockerfile'
- '!src/tests/**'
- 'infra/**/*.bicep'
- 'infra/**/*.json'
- '*.yaml'
- 'content-gen/src/**'
- '!content-gen/src/tests/**'
- 'content-gen/infra/**/*.bicep'
- 'content-gen/infra/**/*.json'
- 'content-gen/*.yaml'
- 'content-gen/scripts/**'
- '.github/workflows/deploy-*.yml'
workflow_run:
workflows: ["Build Docker and Optional Push"]
Expand All @@ -23,6 +21,16 @@ on:
- demo
workflow_dispatch:
inputs:
runner_os:
description: 'Deployment Environment'
required: false
type: choice
options:
- 'codespace'
- 'Devcontainer'
- 'Local'
default: 'codespace'

azure_location:
description: 'Azure Location For Deployment'
required: false
Expand All @@ -32,11 +40,14 @@ on:
- 'australiaeast'
- 'centralus'
- 'eastasia'
- 'eastus2'
- 'eastus'
- 'japaneast'
- 'northeurope'
- 'southeastasia'
- 'swedencentral'
- 'uksouth'
- 'westus'
- 'westus3'
resource_group_name:
description: 'Resource Group Name (Optional)'
required: false
Expand Down Expand Up @@ -90,17 +101,29 @@ on:
required: false
default: ''
type: string
image_model_choice:
description: 'Image Model to Deploy'
required: false
default: 'gpt-image-1'
type: choice
options:
- 'gpt-image-1'
- 'gpt-image-1.5'
- 'dall-e-3'
- 'none'

schedule:
- cron: '0 9,21 * * *' # Runs at 9:00 AM and 9:00 PM GMT
- cron: '30 4 * * *' # Runs at 10:00 AM IST (4:30 AM UTC)
permissions:
contents: read
actions: read
packages: write # Required by deploy-orchestrator → job-deploy → job-deploy-devcontainer for GHCR
jobs:
validate-inputs:
runs-on: ubuntu-latest
outputs:
validation_passed: ${{ steps.validate.outputs.passed }}
runner_os: ${{ steps.validate.outputs.runner_os }}
azure_location: ${{ steps.validate.outputs.azure_location }}
resource_group_name: ${{ steps.validate.outputs.resource_group_name }}
waf_enabled: ${{ steps.validate.outputs.waf_enabled }}
Expand All @@ -111,11 +134,13 @@ jobs:
azure_env_log_analytics_workspace_id: ${{ steps.validate.outputs.azure_env_log_analytics_workspace_id }}
azure_existing_ai_project_resource_id: ${{ steps.validate.outputs.azure_existing_ai_project_resource_id }}
existing_webapp_url: ${{ steps.validate.outputs.existing_webapp_url }}
image_model_choice: ${{ steps.validate.outputs.image_model_choice }}
steps:
- name: Validate Workflow Input Parameters
id: validate
shell: bash
env:
INPUT_RUNNER_OS: ${{ github.event.inputs.runner_os }}
INPUT_AZURE_LOCATION: ${{ github.event.inputs.azure_location }}
INPUT_RESOURCE_GROUP_NAME: ${{ github.event.inputs.resource_group_name }}
INPUT_WAF_ENABLED: ${{ github.event.inputs.waf_enabled }}
Expand All @@ -126,10 +151,30 @@ jobs:
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
INPUT_EXISTING_WEBAPP_URL: ${{ github.event.inputs.existing_webapp_url }}
INPUT_IMAGE_MODEL_CHOICE: ${{ github.event.inputs.image_model_choice }}
run: |
echo "🔍 Validating workflow input parameters..."
VALIDATION_FAILED=false

# Validate runner_os (specific allowed values) and derive actual runner
RUNNER_OS_INPUT="${INPUT_RUNNER_OS:-codespace}"
if [[ "$RUNNER_OS_INPUT" != "codespace" && "$RUNNER_OS_INPUT" != "Devcontainer" && "$RUNNER_OS_INPUT" != "Local" ]]; then
echo "❌ ERROR: runner_os must be one of: codespace, Devcontainer, Local, got: '$RUNNER_OS_INPUT'"
VALIDATION_FAILED=true
else
echo "✅ runner_os: '$RUNNER_OS_INPUT' is valid"
fi

# Derive actual runner from runner_os input
if [[ "$RUNNER_OS_INPUT" == "codespace" ]]; then
RUNNER_OS="ubuntu-latest"
elif [[ "$RUNNER_OS_INPUT" == "Devcontainer" ]]; then
RUNNER_OS="devcontainer"
else
RUNNER_OS="windows-latest"
fi
echo "✅ runner_os derived as: '$RUNNER_OS'"

# Validate azure_location (Azure region format)
LOCATION="${INPUT_AZURE_LOCATION:-australiaeast}"

Expand Down Expand Up @@ -252,6 +297,7 @@ jobs:

# Output validated values
echo "passed=true" >> $GITHUB_OUTPUT
echo "runner_os=$RUNNER_OS" >> $GITHUB_OUTPUT
echo "azure_location=$LOCATION" >> $GITHUB_OUTPUT
echo "resource_group_name=$INPUT_RESOURCE_GROUP_NAME" >> $GITHUB_OUTPUT
echo "waf_enabled=$WAF_ENABLED" >> $GITHUB_OUTPUT
Expand All @@ -262,13 +308,23 @@ jobs:
echo "azure_env_log_analytics_workspace_id=$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" >> $GITHUB_OUTPUT
echo "azure_existing_ai_project_resource_id=$INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID" >> $GITHUB_OUTPUT
echo "existing_webapp_url=$INPUT_EXISTING_WEBAPP_URL" >> $GITHUB_OUTPUT

# Validate and output image_model_choice
IMAGE_MODEL="${INPUT_IMAGE_MODEL_CHOICE:-gpt-image-1}"
ALLOWED_MODELS=("gpt-image-1" "gpt-image-1.5" "dall-e-3" "none")
if [[ ! " ${ALLOWED_MODELS[@]} " =~ " ${IMAGE_MODEL} " ]]; then
echo "❌ ERROR: image_model_choice '$IMAGE_MODEL' is invalid. Allowed: ${ALLOWED_MODELS[*]}"
exit 1
fi
echo "✅ image_model_choice: '$IMAGE_MODEL' is valid"
echo "image_model_choice=$IMAGE_MODEL" >> $GITHUB_OUTPUT

Run:
needs: validate-inputs
if: needs.validate-inputs.outputs.validation_passed == 'true'
uses: ./.github/workflows/deploy-orchestrator.yml
with:
runner_os: ubuntu-latest
runner_os: ${{ needs.validate-inputs.outputs.runner_os || 'ubuntu-latest' }}
azure_location: ${{ needs.validate-inputs.outputs.azure_location || 'australiaeast' }}
resource_group_name: ${{ needs.validate-inputs.outputs.resource_group_name || '' }}
waf_enabled: ${{ needs.validate-inputs.outputs.waf_enabled == 'true' }}
Expand All @@ -280,4 +336,5 @@ jobs:
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ needs.validate-inputs.outputs.azure_existing_ai_project_resource_id || '' }}
existing_webapp_url: ${{ needs.validate-inputs.outputs.existing_webapp_url || '' }}
trigger_type: ${{ github.event_name }}
image_model_choice: ${{ needs.validate-inputs.outputs.image_model_choice || 'gpt-image-1' }}
secrets: inherit
12 changes: 10 additions & 2 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_call:
inputs:
runner_os:
description: 'Runner OS (ubuntu-latest or windows-latest)'
description: 'Runner OS (ubuntu-latest, windows-latest, or devcontainer)'
required: true
type: string
azure_location:
Expand Down Expand Up @@ -61,12 +61,18 @@ on:
description: 'Trigger type (workflow_dispatch, pull_request, schedule)'
required: true
type: string
image_model_choice:
description: 'Image model to deploy (gpt-image-1, gpt-image-1.5, dall-e-3, none)'
required: false
default: 'gpt-image-1'
type: string

env:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
permissions:
contents: read
actions: read
packages: write # Required by job-deploy → job-deploy-devcontainer to push devcontainer image to GHCR

jobs:
docker-build:
Expand Down Expand Up @@ -94,10 +100,12 @@ jobs:
docker_image_tag: ${{ needs.docker-build.outputs.IMAGE_TAG }}
run_e2e_tests: ${{ inputs.run_e2e_tests }}
cleanup_resources: ${{ inputs.cleanup_resources }}
image_model_choice: ${{ inputs.image_model_choice }}
secrets: inherit

e2e-test:
if: "!cancelled() && ((needs.deploy.result == 'success' && needs.deploy.outputs.WEB_APPURL != '') || (inputs.existing_webapp_url != '' && inputs.existing_webapp_url != null)) && (inputs.trigger_type != 'workflow_dispatch' || (inputs.run_e2e_tests != 'None' && inputs.run_e2e_tests != '' && inputs.run_e2e_tests != null))"
# if: "!cancelled() && ((needs.deploy.result == 'success' && needs.deploy.outputs.WEB_APPURL != '') || (inputs.existing_webapp_url != '' && inputs.existing_webapp_url != null)) && (inputs.trigger_type != 'workflow_dispatch' || (inputs.run_e2e_tests != 'None' && inputs.run_e2e_tests != '' && inputs.run_e2e_tests != null))"
if: false # Temporarily disable E2E tests
needs: [docker-build, deploy]
uses: ./.github/workflows/test-automation-v2.yml
with:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ on:
permissions:
contents: read
actions: read
packages: write # Required by deploy-orchestrator → job-deploy → job-deploy-devcontainer for GHCR

jobs:
validate-inputs:
Expand Down
Loading