Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
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
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ jobs:
--template-file infra/main.bicep \
--parameters solutionName=${{env.SOLUTION_PREFIX}} \
--parameters location=${{ env.AZURE_LOCATION }} \
--parameters aiDeploymentLocation=${{ env.AZURE_LOCATION }} \
--parameters azureAiServiceLocation=${{ env.AZURE_LOCATION }} \
--parameters createdBy="pipeline" \

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ on:
required: false
default: false
type: boolean
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID:
description: 'Log Analytics Workspace ID (Optional)'
required: false
default: ''
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
EXP: ${{ inputs.EXP }}
build_docker_image: ${{ inputs.build_docker_image }}
existing_webapp_url: ${{ inputs.existing_webapp_url }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
docker_image_tag: ${{ needs.docker-build.outputs.IMAGE_TAG }}
cleanup_resources: ${{ inputs.cleanup_resources }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/deploy-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ jobs:
exp: ${{ steps.validate.outputs.exp }}
build_docker_image: ${{ steps.validate.outputs.build_docker_image }}
cleanup_resources: ${{ steps.validate.outputs.cleanup_resources }}
azure_env_log_analytics_workspace_id: ${{ steps.validate.outputs.azure_env_log_analytics_workspace_id }}
azure_env_log_analytics_workspace_rid: ${{ steps.validate.outputs.azure_env_log_analytics_workspace_rid }}
azure_existing_ai_project_resource_id: ${{ steps.validate.outputs.azure_existing_ai_project_resource_id }}
existing_webapp_url: ${{ steps.validate.outputs.existing_webapp_url }}
steps:
Expand All @@ -111,7 +111,7 @@ jobs:
INPUT_EXP: ${{ github.event.inputs.EXP }}
INPUT_BUILD_DOCKER_IMAGE: ${{ github.event.inputs.build_docker_image }}
INPUT_CLEANUP_RESOURCES: ${{ github.event.inputs.cleanup_resources }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deploy-v2.yml still defines the workflow_dispatch input as AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID, but the validation step reads ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} and later outputs azure_env_log_analytics_workspace_rid. As-is, the value will always be empty and the validation block below also references INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID which is never set. Rename the workflow_dispatch input to AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID (or update the references back to _ID) and make the variable names consistent throughout the validation/output logic.

Suggested change
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}

Copilot uses AI. Check for mistakes.
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 }}
run: |
Expand Down Expand Up @@ -252,7 +252,7 @@ jobs:
echo "exp=$EXP_ENABLED" >> $GITHUB_OUTPUT
echo "build_docker_image=$BUILD_DOCKER" >> $GITHUB_OUTPUT
echo "cleanup_resources=$CLEANUP_RESOURCES" >> $GITHUB_OUTPUT
echo "azure_env_log_analytics_workspace_id=$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" >> $GITHUB_OUTPUT
echo "azure_env_log_analytics_workspace_rid=$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" >> $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

Expand All @@ -268,7 +268,7 @@ jobs:
EXP: ${{ needs.validate-inputs.outputs.exp == 'true' }}
build_docker_image: ${{ needs.validate-inputs.outputs.build_docker_image == 'true' }}
cleanup_resources: ${{ needs.validate-inputs.outputs.cleanup_resources == 'true' }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ needs.validate-inputs.outputs.azure_env_log_analytics_workspace_id || '' }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ needs.validate-inputs.outputs.azure_env_log_analytics_workspace_rid || '' }}
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 }}
Expand Down
32 changes: 15 additions & 17 deletions .github/workflows/job-deploy-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ on:
required: false
type: string
default: 'false'
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID:
required: false
type: string
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:
Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:
INPUT_BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }}
INPUT_EXP: ${{ inputs.EXP }}
INPUT_WAF_ENABLED: ${{ inputs.WAF_ENABLED }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
Comment on lines 59 to 63
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The validation step maps the input into INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID, but the validation logic later in this script still references INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID. That means the Log Analytics Resource ID is never validated (and a typo could slip through unnoticed). Rename the referenced variable in the validation logic to _RID to match the input.

Copilot uses AI. Check for mistakes.
run: |
echo "🔍 Validating workflow input parameters..."
Expand Down Expand Up @@ -223,7 +223,7 @@ jobs:
IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }}
EXP: ${{ inputs.EXP }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
run: |
set -e
Expand All @@ -237,9 +237,7 @@ jobs:

# Set additional parameters
azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_AI_DEPLOYMENT_LOCATION="$AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_ENV_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_LOCATION="$AZURE_LOCATION"
azd env set AZURE_RESOURCE_GROUP="$RESOURCE_GROUP_NAME"
azd env set AZURE_ENV_IMAGETAG="$IMAGE_TAG"
Expand All @@ -249,34 +247,34 @@ jobs:
# Extract ACR name from login server and set as environment variable
ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}")
azd env set AZURE_CONTAINER_REGISTRY_HOST="$ACR_NAME"
echo "Set ACR name to: $ACR_NAME"
echo "Set ACR host to: $ACR_NAME"
else
echo "Skipping ACR name configuration (using existing image)"
echo "Skipping ACR endpoint configuration (using existing image)"
fi

if [[ "$EXP" == "true" ]]; then
echo "✅ EXP ENABLED - Setting EXP parameters..."

# Set EXP variables dynamically
if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]]; then
EXP_LOG_ANALYTICS_ID="$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT"
if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT" ]]; then
EXP_LOG_ANALYTICS_ID="$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT"
else
EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}"
EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}"
fi

if [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then
EXP_AI_PROJECT_ID="$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT"
else
EXP_AI_PROJECT_ID="${{ secrets.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}"
EXP_AI_PROJECT_ID="${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_RID }}"
fi

echo "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID"
echo "AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: $EXP_AI_PROJECT_ID"
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID="$EXP_LOG_ANALYTICS_ID"
azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID="$EXP_AI_PROJECT_ID"
echo "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: $EXP_LOG_ANALYTICS_ID"
echo "AZURE_ENV_FOUNDRY_PROJECT_RID: $EXP_AI_PROJECT_ID"
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID="$EXP_LOG_ANALYTICS_ID"
azd env set AZURE_ENV_FOUNDRY_PROJECT_RID="$EXP_AI_PROJECT_ID"
else
echo "❌ EXP DISABLED - Skipping EXP parameters"
if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]] || [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then
if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT" ]] || [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then
echo "⚠️ Warning: EXP parameter values provided but EXP is disabled. These values will be ignored."
fi
fi
Expand Down
30 changes: 14 additions & 16 deletions .github/workflows/job-deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ on:
required: false
type: string
default: 'false'
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID:
required: false
type: string
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:
Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:
INPUT_BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }}
INPUT_EXP: ${{ inputs.EXP }}
INPUT_WAF_ENABLED: ${{ inputs.WAF_ENABLED }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The validation step maps the input into INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID, but the validation logic later in this script still references INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID. As a result, the provided Log Analytics Resource ID won’t be validated. Update the validation logic to consistently use the _RID variable name.

Suggested change
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}

Copilot uses AI. Check for mistakes.
INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
run: |
echo "🔍 Validating workflow input parameters..."
Expand Down Expand Up @@ -224,7 +224,7 @@ jobs:
IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }}
EXP: ${{ inputs.EXP }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
run: |
$ErrorActionPreference = "Stop"
Expand All @@ -238,9 +238,7 @@ jobs:

# Set additional parameters
azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_AI_DEPLOYMENT_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_ENV_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION"
azd env set AZURE_LOCATION="$env:AZURE_LOCATION"
azd env set AZURE_RESOURCE_GROUP="$env:RESOURCE_GROUP_NAME"
azd env set AZURE_ENV_IMAGETAG="$env:IMAGE_TAG"
Expand All @@ -249,31 +247,31 @@ jobs:
if ($env:BUILD_DOCKER_IMAGE -eq "true") {
$ACR_NAME = "${{ secrets.ACR_TEST_LOGIN_SERVER }}"
azd env set AZURE_CONTAINER_REGISTRY_HOST="$ACR_NAME"
Write-Host "Set ACR name to: $ACR_NAME"
Write-Host "Set ACR host to: $ACR_NAME"
} else {
Write-Host "Skipping ACR name configuration (using existing image)"
Write-Host "Skipping ACR endpoint configuration (using existing image)"
}

if ($env:EXP -eq "true") {
Write-Host "✅ EXP ENABLED - Setting EXP parameters..."

# Set EXP variables dynamically
if ($env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID -ne "") {
$EXP_LOG_ANALYTICS_ID = $env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID
if ($env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID -ne "") {
$EXP_LOG_ANALYTICS_ID = $env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID
} else {
$EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}"
$EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}"
}

if ($env:AZURE_EXISTING_AI_PROJECT_RESOURCE_ID -ne "") {
$EXP_AI_PROJECT_ID = $env:AZURE_EXISTING_AI_PROJECT_RESOURCE_ID
} else {
$EXP_AI_PROJECT_ID = "${{ secrets.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}"
$EXP_AI_PROJECT_ID = "${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_RID }}"
}

Write-Host "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID"
Write-Host "AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: $EXP_AI_PROJECT_ID"
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID="$EXP_LOG_ANALYTICS_ID"
azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID="$EXP_AI_PROJECT_ID"
Write-Host "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: $EXP_LOG_ANALYTICS_ID"
Write-Host "AZURE_ENV_FOUNDRY_PROJECT_RID: $EXP_AI_PROJECT_ID"
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID="$EXP_LOG_ANALYTICS_ID"
azd env set AZURE_ENV_FOUNDRY_PROJECT_RID="$EXP_AI_PROJECT_ID"
} else {
Write-Host "❌ EXP DISABLED - Skipping EXP parameters"
}
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/job-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ on:
required: false
default: ''
type: string
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID:
description: 'Log Analytics Workspace ID (Optional)'
required: false
default: ''
Expand Down Expand Up @@ -119,7 +119,7 @@ jobs:
INPUT_WAF_ENABLED: ${{ inputs.waf_enabled }}
INPUT_EXP: ${{ inputs.EXP }}
INPUT_CLEANUP_RESOURCES: ${{ inputs.cleanup_resources }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
INPUT_EXISTING_WEBAPP_URL: ${{ inputs.existing_webapp_url }}
INPUT_DOCKER_IMAGE_TAG: ${{ inputs.docker_image_tag }}
Expand Down Expand Up @@ -205,15 +205,15 @@ jobs:
echo "✅ cleanup_resources: '$INPUT_CLEANUP_RESOURCES' is valid"
fi

# Validate AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID (Azure Resource ID format)
if [[ -n "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" ]]; then
if [[ ! "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" =~ ^/subscriptions/[a-fA-F0-9-]+/[Rr]esource[Gg]roups/[^/]+/providers/[Mm]icrosoft\.[Oo]perational[Ii]nsights/[Ww]orkspaces/[^/]+$ ]]; then
echo "❌ ERROR: AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID is invalid. Must be a valid Azure Resource ID format:"
# Validate AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID (Azure Resource ID format)
if [[ -n "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" ]]; then
if [[ ! "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" =~ ^/subscriptions/[a-fA-F0-9-]+/[Rr]esource[Gg]roups/[^/]+/providers/[Mm]icrosoft\.[Oo]perational[Ii]nsights/[Ww]orkspaces/[^/]+$ ]]; then
echo "❌ ERROR: AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID is invalid. Must be a valid Azure Resource ID format:"
echo " /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}"
echo " Got: '$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID'"
echo " Got: '$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID'"
VALIDATION_FAILED=true
else
echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Valid Resource ID format"
echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: Valid Resource ID format"
fi
fi

Expand Down Expand Up @@ -269,7 +269,7 @@ jobs:
shell: bash
env:
INPUT_EXP: ${{ inputs.EXP }}
INPUT_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
INPUT_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
INPUT_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
run: |
Comment on lines 271 to 275
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the "Validate and Auto-Configure EXP" step, the env var was renamed to INPUT_LOG_ANALYTICS_WORKSPACE_RID, but the script logic below still checks/prints INPUT_LOG_ANALYTICS_WORKSPACE_ID. This makes the auto-enable branch ignore the provided Log Analytics resource ID. Update the script to consistently use the _RID variable name.

Copilot uses AI. Check for mistakes.
echo "🔍 Validating EXP configuration..."
Expand Down Expand Up @@ -510,7 +510,7 @@ jobs:
BUILD_DOCKER_IMAGE: ${{ inputs.build_docker_image || 'false' }}
EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }}
WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
secrets: inherit

Expand All @@ -528,6 +528,6 @@ jobs:
BUILD_DOCKER_IMAGE: ${{ inputs.build_docker_image || 'false' }}
EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }}
WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
secrets: inherit
Loading
Loading