Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e38e28d
Added unit test
Prachig-Microsoft Mar 25, 2026
b60d462
Update test.yml to run unit test cases for all backend folders
Prachig-Microsoft Mar 25, 2026
8ce472a
Updated test.yml file
Prachig-Microsoft Mar 25, 2026
c5e0434
Made changes in text.yml for Workflow dependencies
Prachig-Microsoft Mar 25, 2026
31c478a
Refcator Pipeline
Vamshi-Microsoft Apr 7, 2026
348e9d6
rename pipeline
Vamshi-Microsoft Apr 7, 2026
7b362d0
feat: Add runner_os input option for deployment environment in workflow
Vamshi-Microsoft Apr 7, 2026
022ff8b
Integrated Smoke testing automation
Vamshi-Microsoft Apr 9, 2026
6a20bde
fix: Remove --headed option from pytest commands and update screensho…
Vamshi-Microsoft Apr 9, 2026
7d8b992
added support for deploying local changes
Dhruvkumar-Microsoft Apr 10, 2026
4d1fc86
updated the copilot comments
Dhruvkumar-Microsoft Apr 10, 2026
899b96d
ci: add CodeQL Advanced security scanning workflow
Prachig-Microsoft Apr 10, 2026
0492c58
ci: add psl-codequality branch to CodeQL workflow triggers
Prachig-Microsoft Apr 10, 2026
f6581ae
ci: add workflow_dispatch trigger to CodeQL workflow
Prachig-Microsoft Apr 10, 2026
77f62a0
fixed dependabot security alerts
Kanchan-Microsoft Apr 13, 2026
66f6c82
Merge pull request #534 from microsoft/psl-DeployingLocalChanges
Roopan-Microsoft Apr 14, 2026
1247ab6
Merge branch 'dev' into psl-smoketesting
Vamshi-Microsoft Apr 14, 2026
92f9b50
Resolve pylint issue
Vamshi-Microsoft Apr 14, 2026
8d0dc7e
rename deploy-linux to deploy-v2
Vamshi-Microsoft Apr 14, 2026
4d78576
Merge pull request #541 from microsoft/psl-sm-integration
Prajwal-Microsoft Apr 15, 2026
f2b370e
Merge remote-tracking branch 'origin/dev' into psl-unit-test-cps-v2
Prachig-Microsoft Apr 15, 2026
876f66b
Merge dev branch and fix test issues
Prachig-Microsoft Apr 15, 2026
ab14185
Fix linting errors: remove trailing whitespace
Prachig-Microsoft Apr 15, 2026
67954b9
Update CI workflow to include services tests for ContentProcessorWork…
Prachig-Microsoft Apr 15, 2026
5dfa297
Update dependencies to specific versions across multiple files
Kanchan-Microsoft Apr 15, 2026
201acae
Merge pull request #536 from microsoft/feature/dependabot-security-fixes
Roopan-Microsoft Apr 15, 2026
f3a50fb
Merge pull request #535 from microsoft/psl-codequality
Prajwal-Microsoft Apr 20, 2026
6427293
Fix test_join_url_variations to match _join_url function signature
Prachig-Microsoft Apr 20, 2026
148b1bf
Restore commented schema and metadata in azure.yaml
Shreyas-Microsoft Apr 20, 2026
11cecf3
Fix linting errors: remove unused imports, prefix unused variables, f…
Prachig-Microsoft Apr 20, 2026
6cadc8e
Fix linting errors: remove unused imports and whitespace issues in sr…
Prachig-Microsoft Apr 20, 2026
ba383ae
Fix remaining linting errors: add missing pytest imports, fix unused …
Prachig-Microsoft Apr 20, 2026
e359bba
Fix linting errors: revert _app to app where used, remove unused impo…
Prachig-Microsoft Apr 20, 2026
9236e0a
Fix linting errors: remove escaped quotes, prefix unused app variable…
Prachig-Microsoft Apr 20, 2026
7e7b5de
Fix F841 and E127 linting errors: remove unused _app assignments and …
Prachig-Microsoft Apr 20, 2026
d4f67d9
Fix F841 linting errors in e2e tests: remove unused variables
Prachig-Microsoft Apr 20, 2026
175e8d6
Fix final linting errors: remove unused _app variable and fix E125 co…
Prachig-Microsoft Apr 20, 2026
e676354
Merge pull request #543 from microsoft/psl-unit-test-cps-v2
Prajwal-Microsoft Apr 20, 2026
85d656b
removed bicep required versions
Shreyas-Microsoft Apr 20, 2026
75b3770
Merge pull request #553 from microsoft/dev-patch-1
Prajwal-Microsoft Apr 20, 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
109 changes: 109 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@

# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
push:
branches: [ "main", "dev", "demo"]
paths:
- 'src/**/*.py'
- 'src/**/*.js'
- 'src/**/*.ts'
- 'src/**/*.tsx'
- 'tests/**/*.py'
- '.github/workflows/codeql.yml'
pull_request:
branches: [ "main", "dev", "demo" ]
paths:
- 'src/**/*.py'
- 'src/**/*.js'
- 'src/**/*.ts'
- 'src/**/*.tsx'
- 'tests/**/*.py'
- '.github/workflows/codeql.yml'
schedule:
- cron: '44 20 * * 2'

jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
- language: javascript-typescript
build-mode: none
- language: python
build-mode: none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
4 changes: 1 addition & 3 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,7 @@ on:

env:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
permissions:
contents: read
actions: read

jobs:
docker-build:
uses: ./.github/workflows/job-docker-build.yml
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Deploy-Test-Cleanup (v2) Linux
name: Deploy-Test-Cleanup (v2)
on:
push:
branches:
Expand All @@ -19,9 +19,17 @@ on:
- 'src/ContentProcessorWeb/config-overrides.js'
- 'src/ContentProcessorWeb/nginx-custom.conf'
- 'src/ContentProcessorWeb/env.sh'
- '.github/workflows/deploy-linux.yml'
- '.github/workflows/deploy-v2.yml'
workflow_dispatch:
inputs:
runner_os:
description: 'Deployment Environment'
required: false
type: choice
options:
- 'codespace'
- 'Local'
default: 'codespace'
azure_location:
description: 'Azure Location For Deployment'
required: false
Expand Down Expand Up @@ -95,11 +103,13 @@ on:
permissions:
contents: read
actions: read
id-token: write
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 @@ -125,9 +135,24 @@ jobs:
INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ github.event.inputs.AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID }}
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_RUNNER_OS: ${{ github.event.inputs.runner_os }}
run: |
echo "🔍 Validating workflow input parameters..."
VALIDATION_FAILED=false

# Resolve runner_os from Deployment Environment selection
DEPLOY_ENV="${INPUT_RUNNER_OS:-codespace}"
if [[ "$DEPLOY_ENV" == "codespace" ]]; then
RUNNER_OS="ubuntu-latest"
echo "✅ Deployment Environment: 'codespace' → runner: ubuntu-latest"
elif [[ "$DEPLOY_ENV" == "Local" ]]; then
RUNNER_OS="windows-latest"
echo "✅ Deployment Environment: 'Local' → runner: windows-latest"
else
echo "❌ ERROR: Deployment Environment must be 'codespace' or 'Local', got: '$DEPLOY_ENV'"
VALIDATION_FAILED=true
RUNNER_OS="ubuntu-latest"
fi

# Validate azure_location (Azure region format)
LOCATION="${INPUT_AZURE_LOCATION:-australiaeast}"
Expand Down Expand Up @@ -251,6 +276,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 @@ -267,7 +293,7 @@ jobs:
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 Down
1 change: 1 addition & 0 deletions .github/workflows/deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ on:
permissions:
contents: read
actions: read
id-token: write
jobs:
validate-inputs:
runs-on: ubuntu-latest
Expand Down
22 changes: 13 additions & 9 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ on:
permissions:
contents: read
actions: read
id-token: write
jobs:
deploy:
runs-on: ubuntu-latest
environment: production
outputs:
RESOURCE_GROUP_NAME: ${{ steps.generate_rg_name.outputs.RESOURCE_GROUP_NAME }}
CONTAINER_WEB_APPURL: ${{ steps.get_output.outputs.CONTAINER_WEB_APPURL }}
Expand All @@ -34,16 +36,15 @@ jobs:
uses: actions/checkout@v5

- name: Login to Azure
run: |
az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Run Quota Check
id: quota-check
env:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
GPT_MIN_CAPACITY: "100"
AZURE_REGIONS: ${{ vars.AZURE_REGIONS }}
Expand Down Expand Up @@ -268,6 +269,7 @@ jobs:
if: always()
needs: [deploy, e2e-test]
runs-on: ubuntu-latest
environment: production
env:
RESOURCE_GROUP_NAME: ${{ needs.deploy.outputs.RESOURCE_GROUP_NAME }}
AI_SERVICES_NAME: ${{ needs.deploy.outputs.AI_SERVICES_NAME }}
Expand All @@ -276,9 +278,11 @@ jobs:
ENVIRONMENT_NAME: ${{ needs.deploy.outputs.ENVIRONMENT_NAME }}
steps:
- name: Login to Azure
run: |
az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Delete Bicep Deployment
if: always()
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/job-cleanup-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,11 @@ on:
description: 'Docker Image Tag'
required: true
type: string
permissions:
contents: read
actions: read

jobs:
cleanup-deployment:
runs-on: ${{ inputs.runner_os }}
environment: production
continue-on-error: true
env:
RESOURCE_GROUP_NAME: ${{ inputs.RESOURCE_GROUP_NAME }}
Expand Down Expand Up @@ -201,10 +200,11 @@ jobs:
echo "✅ All input parameters validated successfully!"

- name: Login to Azure
shell: bash
run: |
az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Delete Resource Group (Optimized Cleanup)
id: delete_rg
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/job-deploy-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,11 @@ on:
CONTAINER_WEB_APPURL:
description: "Container Web App URL"
value: ${{ jobs.deploy-linux.outputs.CONTAINER_WEB_APPURL }}
permissions:
contents: read
actions: read

jobs:
deploy-linux:
runs-on: ubuntu-latest
environment: production
env:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
outputs:
Expand Down Expand Up @@ -200,13 +199,18 @@ jobs:
- 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
id: login-azure
shell: bash
run: |
az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
azd auth login --client-id ${{ secrets.AZURE_CLIENT_ID }} --client-secret ${{ secrets.AZURE_CLIENT_SECRET }} --tenant-id ${{ secrets.AZURE_TENANT_ID }}
azd auth login --client-id ${{ secrets.AZURE_CLIENT_ID }} --federated-credential-provider "github" --tenant-id ${{ secrets.AZURE_TENANT_ID }}

- name: Deploy using azd up and extract values (Linux)
id: get_output_linux
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/job-deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,11 @@ on:
CONTAINER_WEB_APPURL:
description: "Container Web App URL"
value: ${{ jobs.deploy-windows.outputs.CONTAINER_WEB_APPURL }}
permissions:
contents: read
actions: read

jobs:
deploy-windows:
runs-on: windows-latest
environment: production
env:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
outputs:
Expand Down Expand Up @@ -200,13 +199,18 @@ jobs:
- name: Setup Azure Developer CLI (Windows)
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
id: login-azure
shell: bash
run: |
az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
azd auth login --client-id ${{ secrets.AZURE_CLIENT_ID }} --client-secret ${{ secrets.AZURE_CLIENT_SECRET }} --tenant-id ${{ secrets.AZURE_TENANT_ID }}
azd auth login --client-id ${{ secrets.AZURE_CLIENT_ID }} --federated-credential-provider "github" --tenant-id ${{ secrets.AZURE_TENANT_ID }}

- name: Deploy using azd up and extract values (Windows)
id: get_output_windows
Expand Down
Loading
Loading