Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
2 changes: 1 addition & 1 deletion .github/workflows/azd-template-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Set timestamp
run: echo "HHMM=$(date -u +'%H%M')" >> $GITHUB_ENV

- uses: microsoft/template-validation-action@v0.4.4
- uses: microsoft/template-validation-action@v0.4.3
with:
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/azure-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
steps:
- name: Checkout Code
uses: actions/checkout@v6
uses: actions/checkout@v4

- name: Set timestamp and env name
run: |
Expand All @@ -32,7 +32,7 @@ jobs:
uses: Azure/setup-azd@v2

- name: Login to Azure
uses: azure/login@v3
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/bicep_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: actions/checkout@v6

- name: Login to Azure
uses: azure/login@v3
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/broken-links-checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Get changed markdown files (PR only)
id: changed-markdown-files
if: github.event_name == 'pull_request'
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v46
uses: tj-actions/changed-files@e0021407031f5be11a464abee9a0776171c79891 # v46
with:
files: |
**/*.md
Expand All @@ -35,7 +35,7 @@ jobs:
- name: Check Broken Links in Changed Markdown Files
id: lychee-check-pr
if: github.event_name == 'pull_request' && steps.changed-markdown-files.outputs.any_changed == 'true'
uses: lycheeverse/lychee-action@v2.8.0
uses: lycheeverse/lychee-action@v2.7.0
with:
args: >
--verbose --no-progress --exclude ^https?://
Expand All @@ -48,7 +48,7 @@ jobs:
- name: Check Broken Links in All Markdown Files in Entire Repo (Manual Trigger)
id: lychee-check-manual
if: github.event_name == 'workflow_dispatch'
uses: lycheeverse/lychee-action@v2.8.0
uses: lycheeverse/lychee-action@v2.7.0
with:
args: >
--verbose --no-progress --exclude ^https?://
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
with:
ref: ${{ github.sha }}

- uses: codfish/semantic-release-action@v5
- uses: codfish/semantic-release-action@v4
id: semantic
with:
tag-format: 'v${version}'
Expand Down
18 changes: 11 additions & 7 deletions .github/workflows/deploy-KMGeneric.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
uses: actions/checkout@v6

- name: Login to Azure
uses: azure/login@v3
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down Expand Up @@ -96,14 +96,18 @@ jobs:
- name: Check and Create Resource Group
id: check_create_rg
run: |
set -e
echo "Checking if resource group exists..."
set -e
OWNER_TAG_VALUE="${{ github.actor }}"
echo "🔍 Checking if resource group '${{ env.RESOURCE_GROUP_NAME }}' exists..."
rg_exists=$(az group exists --name ${{ env.RESOURCE_GROUP_NAME }})
if [ "$rg_exists" = "false" ]; then
echo "Resource group does not exist. Creating..."
az group create --name ${{ env.RESOURCE_GROUP_NAME }} --location ${{ env.AZURE_LOCATION }} || { echo "Error creating resource group"; exit 1; }
echo "📦 Resource group does not exist. Creating..."
echo "🏷️ Adding Owner tag: Owner=${OWNER_TAG_VALUE}"
az group create --name ${{ env.RESOURCE_GROUP_NAME }} --location ${{ env.AZURE_LOCATION }} --tags "Owner=${OWNER_TAG_VALUE}" || { echo "❌ Error creating resource group"; exit 1; }
else
echo "Resource group already exists."
echo "✅ Resource group already exists."
echo "🏷️ Adding Owner tag on existing resource group: Owner=${OWNER_TAG_VALUE}"
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 }}'."
fi
echo "RESOURCE_GROUP_NAME=${{ env.RESOURCE_GROUP_NAME }}" >> $GITHUB_OUTPUT
- name: Generate Unique Solution Prefix
Expand Down Expand Up @@ -199,7 +203,7 @@ jobs:
RESOURCE_GROUP_NAME: ${{ needs.deploy.outputs.RESOURCE_GROUP_NAME }}
steps:
- name: Login to Azure
uses: azure/login@v3
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ on:
required: false
default: false
type: boolean
enable_scalability:
description: 'Enable scalability features for WAF deployments (opt-in)'
required: false
default: false
type: boolean
exp:
description: 'Enable EXP'
required: false
Expand Down Expand Up @@ -88,6 +93,7 @@ jobs:
azure_location: ${{ inputs.azure_location }}
resource_group_name: ${{ inputs.resource_group_name }}
waf_enabled: ${{ inputs.waf_enabled }}
enable_scalability: ${{ inputs.enable_scalability }}
exp: ${{ inputs.exp }}
build_docker_image: ${{ inputs.build_docker_image }}
existing_webapp_url: ${{ inputs.existing_webapp_url }}
Expand Down
46 changes: 32 additions & 14 deletions .github/workflows/deploy-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,41 +31,46 @@ on:
default: 'codespace'

azure_location:
description: 'Azure Location For Deployment'
description: 'Azure Region (Non-AI Services)'
required: false
default: 'australiaeast'
type: choice
options:
- 'australiaeast'
- 'eastus'
- 'centralus'
- 'eastasia'
- 'eastus2'
- 'japaneast'
- 'swedencentral'
- 'northeurope'
- 'southeastasia'
- 'uksouth'
- 'westus'
- 'westus2'
resource_group_name:
description: 'Resource Group Name (Optional)'
required: false
default: ''
type: string
build_docker_image:
description: 'Build & Use Custom Images (Optional)'
required: false
default: false
type: boolean
waf_enabled:
description: 'Enable WAF'
description: 'Deploy WAF'
required: false
default: false
type: boolean
EXP:
description: 'Enable EXP'
enable_scalability:
description: 'Enable Scalability (WAF only)'
required: false
default: false
type: boolean
build_docker_image:
description: 'Build And Push Docker Image (Optional)'
EXP:
description: 'Deploy EXP'
required: false
default: false
type: boolean
cleanup_resources:
description: 'Cleanup Deployed Resources'
description: 'Auto Delete RG'
required: false
default: false
type: boolean
Expand All @@ -87,17 +92,17 @@ on:
- 'Smoke-Testing'
- 'None'
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID:
description: 'Log Analytics Workspace ID (Optional)'
description: 'Existing Log Analytics Workspace Resource ID (Optional)'
required: false
default: ''
type: string
AZURE_EXISTING_AIPROJECT_RESOURCE_ID:
description: 'AI Project Resource ID (Optional)'
description: 'Existing AI Project Resource ID (Optional)'
required: false
default: ''
type: string
existing_webapp_url:
description: 'Existing WebApp URL (Skips Deployment)'
description: 'Run Tests Against Existing RG (Provide Web App URL)'
required: false
default: ''
type: string
Expand All @@ -117,6 +122,7 @@ jobs:
azure_location: ${{ steps.validate.outputs.azure_location }}
resource_group_name: ${{ steps.validate.outputs.resource_group_name }}
waf_enabled: ${{ steps.validate.outputs.waf_enabled }}
enable_scalability: ${{ steps.validate.outputs.enable_scalability }}
exp: ${{ steps.validate.outputs.exp }}
build_docker_image: ${{ steps.validate.outputs.build_docker_image }}
cleanup_resources: ${{ steps.validate.outputs.cleanup_resources }}
Expand All @@ -135,6 +141,7 @@ jobs:
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 }}
INPUT_ENABLE_SCALABILITY: ${{ github.event.inputs.enable_scalability }}
INPUT_EXP: ${{ github.event.inputs.EXP }}
INPUT_BUILD_DOCKER_IMAGE: ${{ github.event.inputs.build_docker_image }}
INPUT_CLEANUP_RESOURCES: ${{ github.event.inputs.cleanup_resources }}
Expand Down Expand Up @@ -197,6 +204,15 @@ jobs:
echo "✅ waf_enabled: '$WAF_ENABLED' is valid"
fi

# Validate enable_scalability (boolean)
ENABLE_SCALABILITY="${INPUT_ENABLE_SCALABILITY:-false}"
if [[ "$ENABLE_SCALABILITY" != "true" && "$ENABLE_SCALABILITY" != "false" ]]; then
echo "❌ ERROR: enable_scalability must be 'true' or 'false', got: '$ENABLE_SCALABILITY'"
VALIDATION_FAILED=true
else
echo "✅ enable_scalability: '$ENABLE_SCALABILITY' is valid"
fi

# Validate EXP (boolean)
EXP_ENABLED="${INPUT_EXP:-false}"
if [[ "$EXP_ENABLED" != "true" && "$EXP_ENABLED" != "false" ]]; then
Expand Down Expand Up @@ -297,6 +313,7 @@ jobs:
echo "azure_location=$LOCATION" >> $GITHUB_OUTPUT
echo "resource_group_name=$INPUT_RESOURCE_GROUP_NAME" >> $GITHUB_OUTPUT
echo "waf_enabled=$WAF_ENABLED" >> $GITHUB_OUTPUT
echo "enable_scalability=$ENABLE_SCALABILITY" >> $GITHUB_OUTPUT
echo "exp=$EXP_ENABLED" >> $GITHUB_OUTPUT
echo "build_docker_image=$BUILD_DOCKER" >> $GITHUB_OUTPUT
echo "cleanup_resources=$CLEANUP_RESOURCES" >> $GITHUB_OUTPUT
Expand All @@ -317,6 +334,7 @@ jobs:
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' }}
enable_scalability: ${{ needs.validate-inputs.outputs.enable_scalability == 'true' }}
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' }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ jobs:
uses: actions/checkout@v6

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
uses: docker/setup-buildx-action@v3

- name: Login to Azure
if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'dev' || github.ref_name == 'demo')) || (github.event_name == 'workflow_dispatch' && (github.ref_name == 'dependabotchanges'||github.ref_name == 'main' || github.ref_name == 'dev' || github.ref_name == 'demo')) }}
uses: azure/login@v3
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:

fi
- name: Build and Push Docker Image for WebApp
uses: docker/build-push-action@v7
uses: docker/build-push-action@v6
with:
context: ./src/App
file: ./src/App/WebApp.Dockerfile
Expand All @@ -99,7 +99,7 @@ jobs:
${{ secrets.ACR_LOGIN_SERVER || 'acrlogin.azurecr.io' }}/km-app:${{ steps.determine_tag.outputs.tagname }}_${{ steps.date.outputs.date }}_${{ github.run_number }}

- name: Build and Push Docker Image for api
uses: docker/build-push-action@v7
uses: docker/build-push-action@v6
with:
context: ./src/api
file: ./src/api/ApiApp.Dockerfile
Expand Down
17 changes: 14 additions & 3 deletions .github/workflows/job-azure-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ on:
required: false
default: false
type: boolean
enable_scalability:
description: 'Enable scalability features for WAF deployments (opt-in)'
required: false
default: false
type: boolean
exp:
description: 'Enable EXP'
required: false
Expand Down Expand Up @@ -327,7 +332,7 @@ jobs:
uses: actions/checkout@v6

- name: Login to Azure
uses: azure/login@v3
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down Expand Up @@ -412,15 +417,19 @@ jobs:
id: check_create_rg
shell: bash
run: |
set -e
set -e
OWNER_TAG_VALUE="${{ github.actor }}"
echo "🔍 Checking if resource group '$RESOURCE_GROUP_NAME' exists..."
rg_exists=$(az group exists --name $RESOURCE_GROUP_NAME)
if [ "$rg_exists" = "false" ]; then
echo "📦 Resource group does not exist. Creating new resource group '$RESOURCE_GROUP_NAME' in location '$AZURE_LOCATION'..."
az group create --name $RESOURCE_GROUP_NAME --location $AZURE_LOCATION --tags ${{ env.RG_TAGS }} || { echo "❌ Error creating resource group"; exit 1; }
echo "🏷️ Adding Owner tag: Owner=${OWNER_TAG_VALUE}"
az group create --name $RESOURCE_GROUP_NAME --location $AZURE_LOCATION --tags ${{ env.RG_TAGS }} "Owner=${OWNER_TAG_VALUE}" || { echo "❌ Error creating resource group"; exit 1; }
echo "✅ Resource group '$RESOURCE_GROUP_NAME' created successfully."
else
echo "✅ Resource group '$RESOURCE_GROUP_NAME' already exists. Deploying to existing resource group."
echo "🏷️ Adding Owner tag on existing resource group: Owner=${OWNER_TAG_VALUE}"
az group update --name "$RESOURCE_GROUP_NAME" --set tags.Owner="${OWNER_TAG_VALUE}" --output none || echo "⚠️ Warning: failed to update Owner tag on existing resource group '$RESOURCE_GROUP_NAME'."
fi
echo "RESOURCE_GROUP_NAME=$RESOURCE_GROUP_NAME" >> $GITHUB_OUTPUT
echo "RESOURCE_GROUP_NAME=$RESOURCE_GROUP_NAME" >> $GITHUB_ENV
Expand Down Expand Up @@ -551,6 +560,7 @@ jobs:
BUILD_DOCKER_IMAGE: ${{ github.event.inputs.build_docker_image || 'false' }}
EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }}
WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }}
ENABLE_SCALABILITY: ${{ inputs.enable_scalability == true && 'true' || 'false' }}
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.azure_env_existing_log_analytics_workspace_rid }}
AZURE_EXISTING_AIPROJECT_RESOURCE_ID: ${{ inputs.azure_existing_aiproject_resource_id }}
USE_CASE: ${{ inputs.use_case }}
Expand All @@ -570,6 +580,7 @@ jobs:
BUILD_DOCKER_IMAGE: ${{ github.event.inputs.build_docker_image || 'false' }}
EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }}
WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }}
ENABLE_SCALABILITY: ${{ inputs.enable_scalability == true && 'true' || 'false' }}
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.azure_env_existing_log_analytics_workspace_rid }}
AZURE_EXISTING_AIPROJECT_RESOURCE_ID: ${{ inputs.azure_existing_aiproject_resource_id }}
USE_CASE: ${{ inputs.use_case }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/job-cleanup-resources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
IMAGE_TAG: ${{ inputs.image_tag }}
steps:
- name: Login to Azure
uses: azure/login@v3
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down
Loading