Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
70c6ab9
feat: Add weekly schedule for Azure Template validation,split azure-d…
VishalS-Microsoft Mar 31, 2026
39c5076
feat: Enable push trigger for Azure Dev Deploy workflow on psl-weekly…
VishalS-Microsoft Mar 31, 2026
013bd72
feat: Remove push trigger for psl-weeklyschedule-codmod branch in wor…
VishalS-Microsoft Apr 1, 2026
db80ea7
feat: Add push trigger and timestamp setting for Azure workflows on p…
VishalS-Microsoft Apr 2, 2026
5e5b2da
feat: Remove push trigger for psl-weeklyschedule-codmod branch in wor…
VishalS-Microsoft Apr 2, 2026
d7c6779
Enhance CosmosDBClient and DatabaseFactory for improved error handlin…
Pavan-Microsoft Apr 3, 2026
73f054a
Merge remote-tracking branch 'origin/dev' into psl-pk-cosavmfix
Pavan-Microsoft Apr 3, 2026
a6b843a
Refactor test_create_batch_exists to mock read_item instead of get_ba…
Pavan-Microsoft Apr 3, 2026
7815d5c
Enhance CosmosDBClient error logging and improve test assertions for …
Pavan-Microsoft Apr 3, 2026
e481341
Refactor DatabaseFactory to lazily initialize the lock and improve fi…
Pavan-Microsoft Apr 3, 2026
6bdd50e
fix: avoid leaking batch existence on user mismatch (Copilot review)
Pavan-Microsoft Apr 3, 2026
bda0369
fix: update mock_query_items to accept additional kwargs for improved…
Pavan-Microsoft Apr 3, 2026
79d5964
fix: update fallback behavior to check batch status instead of forcin…
Pavan-Microsoft Apr 6, 2026
27e2f53
Revert "fix: update fallback behavior to check batch status instead o…
Pavan-Microsoft Apr 6, 2026
4b70934
Merge pull request #392 from microsoft/psl-pk-cosavmfix
Roopan-Microsoft Apr 6, 2026
5e765a8
fix: add dependency on aiProject for cognitive service deployments
Pavan-Microsoft Apr 7, 2026
6c81d2b
Merge remote-tracking branch 'origin/dev' into psl-pk-cosavmfix
Pavan-Microsoft Apr 7, 2026
99f379d
fix: update bicep version and template hashes in main.json
Pavan-Microsoft Apr 7, 2026
1d4a220
Merge pull request #395 from microsoft/psl-pk-cosavmfix
Roopan-Microsoft Apr 7, 2026
fc8de18
fix: enhance batch handling in CosmosDBClient and add tests for confl…
Pavan-Microsoft Apr 7, 2026
75e0523
Merge pull request #399 from microsoft/psl-pk-cosavmfix
Roopan-Microsoft Apr 8, 2026
74d876d
Merge pull request #388 from microsoft/psl-weeklyschedule-codmod
Prajwal-Microsoft Apr 8, 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
46 changes: 46 additions & 0 deletions .github/workflows/azd-template-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: AZD Template Validation

on:
schedule:
- cron: '30 1 * * 4' # Every Thursday at 7:00 AM IST (1:30 AM UTC)
workflow_dispatch:

permissions:
contents: read
id-token: write
pull-requests: write

jobs:
template_validation:
runs-on: ubuntu-latest
name: azd template validation
environment: production
steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Set timestamp
run: echo "HHMM=$(date -u +'%H%M')" >> $GITHUB_ENV

- name: Validate Azure Template
id: validation
uses: microsoft/template-validation-action@v0.4.3
with:
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
useDevContainer: ${{ vars.TEMPLATE_USE_DEV_CONTAINER }}

env:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: azd-${{ secrets.AZURE_ENV_NAME }}-${{ env.HHMM }}
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
AZURE_ENV_AI_SERVICE_LOCATION: ${{ secrets.AZURE_AI_DEPLOYMENT_LOCATION || secrets.AZURE_LOCATION }}
AZURE_ENV_MODEL_CAPACITY: 1
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}

- name: Print result
shell: bash
run: cat "${{ steps.validation.outputs.resultFile }}"
100 changes: 64 additions & 36 deletions .github/workflows/azure-dev.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,65 @@
name: Azure Template Validation
on:
workflow_dispatch:

permissions:
contents: read
id-token: write
pull-requests: write
jobs:
template_validation_job:
runs-on: ubuntu-latest
name: Azure Dev Deploy

on:
workflow_dispatch:

permissions:
contents: read
id-token: write

jobs:
deploy:
runs-on: ubuntu-latest
environment: production
name: Template validation
steps:
# Step 1: Checkout the code from your repository
- name: Checkout code
uses: actions/checkout@v6
# Step 2: Validate the Azure template using microsoft/template-validation-action
- name: Validate Azure Template
uses: microsoft/template-validation-action@v0.4.3
with:
validateAzd: true
useDevContainer: false
id: validation
env:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
AZURE_AI_DEPLOYMENT_LOCATION : ${{ secrets.AZURE_AI_DEPLOYMENT_LOCATION }}
AZURE_ENV_MODEL_CAPACITY : 1
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
# Step 3: Print the result of the validation
- name: Print result
run: cat ${{ steps.validation.outputs.resultFile }}
env:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
AZURE_AI_DEPLOYMENT_LOCATION: ${{ secrets.AZURE_AI_DEPLOYMENT_LOCATION || secrets.AZURE_LOCATION }}
AZURE_ENV_MODEL_CAPACITY: 1
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Set timestamp and env name
run: |
HHMM=$(date -u +'%H%M')
echo "AZURE_ENV_NAME=azd-${{ vars.AZURE_ENV_NAME }}-${HHMM}" >> $GITHUB_ENV

- name: Install azd
uses: Azure/setup-azd@v2

- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Login to AZD
shell: bash
run: |
azd auth login \
--client-id "$AZURE_CLIENT_ID" \
--federated-credential-provider "github" \
--tenant-id "$AZURE_TENANT_ID"

- name: Provision and deploy
shell: bash
run: |
set -e

if ! azd env select "$AZURE_ENV_NAME"; then
azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt
fi

azd config set defaults.subscription "$AZURE_SUBSCRIPTION_ID"
azd env set AZURE_SUBSCRIPTION_ID "$AZURE_SUBSCRIPTION_ID"
azd env set AZURE_LOCATION "$AZURE_LOCATION"
azd env set AZURE_ENV_AI_SERVICE_LOCATION "${AZURE_AI_DEPLOYMENT_LOCATION:-$AZURE_LOCATION}"
azd env set AZURE_ENV_MODEL_CAPACITY "$AZURE_ENV_MODEL_CAPACITY"

azd up --no-prompt
64 changes: 35 additions & 29 deletions infra/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "3093757051086668797"
"version": "0.42.1.51946",
"templateHash": "7222423000870488333"
},
"name": "Modernize Your Code Solution Accelerator",
"description": "CSA CTO Gold Standard Solution Accelerator for Modernize Your Code. \r\n"
Expand Down Expand Up @@ -5052,8 +5052,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "8663094775498995429"
"version": "0.42.1.51946",
"templateHash": "3406526791248457038"
}
},
"definitions": {
Expand Down Expand Up @@ -12895,11 +12895,11 @@
},
"dependsOn": [
"applicationInsights",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').ods)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').agentSvc)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').monitor)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').oms)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').agentSvc)]",
"dataCollectionEndpoint",
"logAnalyticsWorkspace",
"virtualNetwork"
Expand Down Expand Up @@ -25611,8 +25611,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "17285204072656433491"
"version": "0.42.1.51946",
"templateHash": "16969185198334420434"
},
"name": "AI Services and Project Module",
"description": "This module creates an AI Services resource and an AI Foundry project within it. It supports private networking, OpenAI deployments, and role assignments."
Expand Down Expand Up @@ -26952,8 +26952,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "5121330425393020264"
"version": "0.42.1.51946",
"templateHash": "4140498216793917924"
}
},
"definitions": {
Expand Down Expand Up @@ -27910,7 +27910,10 @@
"raiPolicyName": "[tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'raiPolicyName')]",
"versionUpgradeOption": "[tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'versionUpgradeOption')]"
},
"sku": "[coalesce(tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'sku'), createObject('name', parameters('sku'), 'capacity', tryGet(parameters('sku'), 'capacity'), 'tier', tryGet(parameters('sku'), 'tier'), 'size', tryGet(parameters('sku'), 'size'), 'family', tryGet(parameters('sku'), 'family')))]"
"sku": "[coalesce(tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'sku'), createObject('name', parameters('sku'), 'capacity', tryGet(parameters('sku'), 'capacity'), 'tier', tryGet(parameters('sku'), 'tier'), 'size', tryGet(parameters('sku'), 'size'), 'family', tryGet(parameters('sku'), 'family')))]",
"dependsOn": [
"aiProject"
]
},
"cognitiveService_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
Expand Down Expand Up @@ -28664,8 +28667,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "10989408486030617267"
"version": "0.42.1.51946",
"templateHash": "2422737205646151487"
}
},
"definitions": {
Expand Down Expand Up @@ -28818,8 +28821,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "7933643033523871028"
"version": "0.42.1.51946",
"templateHash": "11911242767938607365"
}
},
"definitions": {
Expand Down Expand Up @@ -29036,8 +29039,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "5121330425393020264"
"version": "0.42.1.51946",
"templateHash": "4140498216793917924"
}
},
"definitions": {
Expand Down Expand Up @@ -29994,7 +29997,10 @@
"raiPolicyName": "[tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'raiPolicyName')]",
"versionUpgradeOption": "[tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'versionUpgradeOption')]"
},
"sku": "[coalesce(tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'sku'), createObject('name', parameters('sku'), 'capacity', tryGet(parameters('sku'), 'capacity'), 'tier', tryGet(parameters('sku'), 'tier'), 'size', tryGet(parameters('sku'), 'size'), 'family', tryGet(parameters('sku'), 'family')))]"
"sku": "[coalesce(tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'sku'), createObject('name', parameters('sku'), 'capacity', tryGet(parameters('sku'), 'capacity'), 'tier', tryGet(parameters('sku'), 'tier'), 'size', tryGet(parameters('sku'), 'size'), 'family', tryGet(parameters('sku'), 'family')))]",
"dependsOn": [
"aiProject"
]
},
"cognitiveService_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
Expand Down Expand Up @@ -30748,8 +30754,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "10989408486030617267"
"version": "0.42.1.51946",
"templateHash": "2422737205646151487"
}
},
"definitions": {
Expand Down Expand Up @@ -30902,8 +30908,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "7933643033523871028"
"version": "0.42.1.51946",
"templateHash": "11911242767938607365"
}
},
"definitions": {
Expand Down Expand Up @@ -31917,8 +31923,8 @@
"dependsOn": [
"aiServices",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]",
"virtualNetwork"
]
},
Expand Down Expand Up @@ -31974,8 +31980,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "3881415837167031634"
"version": "0.42.1.51946",
"templateHash": "522477461329004641"
}
},
"definitions": {
Expand Down Expand Up @@ -40219,8 +40225,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "15962472891869337617"
"version": "0.42.1.51946",
"templateHash": "15355322017409205910"
}
},
"definitions": {
Expand Down Expand Up @@ -44082,8 +44088,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.41.2.15936",
"templateHash": "17636459140972536078"
"version": "0.42.1.51946",
"templateHash": "4242598725709304634"
}
},
"definitions": {
Expand Down
3 changes: 3 additions & 0 deletions infra/modules/ai-foundry/dependencies.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,9 @@ resource cognitiveService_deployments 'Microsoft.CognitiveServices/accounts/depl
size: sku.?size
family: sku.?family
}
dependsOn: [
aiProject
]
}
]

Expand Down
Loading
Loading