From 62b43588f0df98103d8f7f48e0cdf0c0badc2dd7 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Thu, 10 Sep 2026 16:51:50 -0500 Subject: [PATCH 01/25] test commit Signed-off-by: Praveen K Paladugu --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e86cdb2b08..bd19a12774 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,5 @@ trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. + +## Testing commit From dba2433f9b17e023e080269f5cdca818605f8995 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 16:11:07 -0500 Subject: [PATCH 02/25] Try2 Signed-off-by: Praveen K Paladugu --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bd19a12774..3cde05a123 100644 --- a/README.md +++ b/README.md @@ -44,3 +44,4 @@ Use of Microsoft trademarks or logos in modified versions of this project must n Any use of third-party trademarks or logos are subject to those third-party's policies. ## Testing commit +* Try2 From 24b22acfdeed061a2c2f1aeb24e55c41ad4ad896 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 16:15:41 -0500 Subject: [PATCH 03/25] Fix case for github vars Signed-off-by: Praveen K Paladugu --- .github/workflows/lvbs-smoke-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 9b9cc2a746..72b76375f5 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -20,8 +20,8 @@ jobs: - name: Azure login uses: azure/login@v2 with: - client-id: ${{ secrets.ADO_SP_ClientID }} - tenant-id: ${{ secrets.ADO_SP_TenantID }} + client-id: ${{ secrets.ADO_SP_CLIENTID }} + tenant-id: ${{ secrets.ADO_SP_TENANTID }} allow-no-subscriptions: true - name: Trigger ADO pipeline and wait for completion From 9531cc3fe35b146e847aec8a6288fa97357e1bb5 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 16:21:37 -0500 Subject: [PATCH 04/25] Re-trigger GitHub Actions From c731f3b04ec80fce92abd9414ce3147e62bbf933 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 16:35:22 -0500 Subject: [PATCH 05/25] Re-trigger GitHub Actions - 2 From 510305cdab2a493575e589bf1602d2710521c6ed Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 16:41:47 -0500 Subject: [PATCH 06/25] Update the pipeline branch to main Signed-off-by: Praveen K Paladugu --- .github/mcp.json | 17 +++++++++++++++++ .github/workflows/lvbs-smoke-test.yml | 2 ++ 2 files changed, 19 insertions(+) create mode 100644 .github/mcp.json diff --git a/.github/mcp.json b/.github/mcp.json new file mode 100644 index 0000000000..b7b4027899 --- /dev/null +++ b/.github/mcp.json @@ -0,0 +1,17 @@ +{ + "mcpServers": { + "azure-devops": { + "type": "stdio", + "command": "npx", + "args": [ + "-y", + "@azure-devops/mcp@latest", + "msazure" + ], + "env": { + "ADO_DEFAULT_PROJECT": "LSG-linux" + }, + "tools": ["*"] + } + } +} diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 72b76375f5..9f7c229507 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -28,6 +28,7 @@ jobs: uses: azure/cli@v2 env: ADO_ORGANIZATION: https://dev.azure.com/msazure + ADO_PIPELINE_BRANCH: main ADO_PIPELINE_ID: "471678" ADO_PROJECT: LSG-linux LITEBOX_COMMIT: ${{ github.event.pull_request.head.sha }} @@ -38,6 +39,7 @@ jobs: echo "Triggering ADO pipeline for Litebox commit ${LITEBOX_COMMIT}..." BUILD_RESULT="$(az pipelines run \ --id "${ADO_PIPELINE_ID}" \ + --branch "${ADO_PIPELINE_BRANCH}" \ --organization "${ADO_ORGANIZATION}" \ --project "${ADO_PROJECT}" \ --parameters "liteboxCommit=${LITEBOX_COMMIT}" \ From a9f05cc054647dc910f430d3679c489611931c9a Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 16:45:04 -0500 Subject: [PATCH 07/25] use the default main branch. Don't pass the pipeline branch explicitly Signed-off-by: Praveen K Paladugu --- .github/workflows/lvbs-smoke-test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 9f7c229507..72b76375f5 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -28,7 +28,6 @@ jobs: uses: azure/cli@v2 env: ADO_ORGANIZATION: https://dev.azure.com/msazure - ADO_PIPELINE_BRANCH: main ADO_PIPELINE_ID: "471678" ADO_PROJECT: LSG-linux LITEBOX_COMMIT: ${{ github.event.pull_request.head.sha }} @@ -39,7 +38,6 @@ jobs: echo "Triggering ADO pipeline for Litebox commit ${LITEBOX_COMMIT}..." BUILD_RESULT="$(az pipelines run \ --id "${ADO_PIPELINE_ID}" \ - --branch "${ADO_PIPELINE_BRANCH}" \ --organization "${ADO_ORGANIZATION}" \ --project "${ADO_PROJECT}" \ --parameters "liteboxCommit=${LITEBOX_COMMIT}" \ From 60159ddb9b7fa9907f3d2863cc2578a927075073 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 16:54:32 -0500 Subject: [PATCH 08/25] Re-trigger GitHub Actions - 3 From 29bca5ba8a77b522079c0382e384dddbe1ebc913 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 17:03:06 -0500 Subject: [PATCH 09/25] Re-trigger GitHub Actions - 4 From e15d1def9ff7f3d3f914ded557b1e80fd0b97fca Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 16 Sep 2026 17:13:13 -0500 Subject: [PATCH 10/25] Re-trigger GitHub Actions - 5 From 9d105e519e0411f204ab94103e317eddc950dc6a Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Thu, 17 Sep 2026 12:14:20 -0500 Subject: [PATCH 11/25] Allow rest of the tests to contiue even if lvbs smoke test fails Signed-off-by: Praveen K Paladugu --- .github/workflows/lvbs-smoke-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 72b76375f5..129179948e 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -14,6 +14,7 @@ permissions: jobs: lvbs_smoke_test: name: Run LVBS smoke test + continue-on-error: true runs-on: ubuntu-latest timeout-minutes: 180 steps: From 94b89fa51b34aeb632f011f58d767172476e7a52 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Tue, 29 Sep 2026 08:27:32 -0500 Subject: [PATCH 12/25] Harden LVBS smoke workflow for all PRs Run the trusted workflow for same-repository and fork PRs, pass the canonical repository URL and exact head commit to ADO, cancel obsolete builds, and keep failures visible without making the check required. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 129179948e..9fc0a7b612 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -1,7 +1,7 @@ name: LVBS Smoke Test on: - pull_request: + pull_request_target: types: - opened - synchronize @@ -11,10 +11,13 @@ permissions: contents: read id-token: write +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + jobs: lvbs_smoke_test: name: Run LVBS smoke test - continue-on-error: true runs-on: ubuntu-latest timeout-minutes: 180 steps: @@ -32,16 +35,32 @@ jobs: ADO_PIPELINE_ID: "471678" ADO_PROJECT: LSG-linux LITEBOX_COMMIT: ${{ github.event.pull_request.head.sha }} + LITEBOX_REPO_URL: ${{ github.event.pull_request.head.repo.clone_url }} with: inlineScript: | set -eu + BUILD_ID="" + cancel_build() { + trap - INT TERM + if [ -n "${BUILD_ID}" ]; then + echo "Cancelling superseded ADO build ${BUILD_ID}..." + az pipelines build cancel \ + --build-id "${BUILD_ID}" \ + --organization "${ADO_ORGANIZATION}" \ + --project "${ADO_PROJECT}" \ + --output none || true + fi + exit 130 + } + trap cancel_build INT TERM + echo "Triggering ADO pipeline for Litebox commit ${LITEBOX_COMMIT}..." BUILD_RESULT="$(az pipelines run \ --id "${ADO_PIPELINE_ID}" \ --organization "${ADO_ORGANIZATION}" \ --project "${ADO_PROJECT}" \ - --parameters "liteboxCommit=${LITEBOX_COMMIT}" \ + --parameters "liteboxCommit=${LITEBOX_COMMIT}" "liteboxRepoUrl=${LITEBOX_REPO_URL}" \ --output json)" BUILD_ID="$(printf '%s\n' "${BUILD_RESULT}" | jq -r '.id // empty')" @@ -65,6 +84,7 @@ jobs: echo "ADO build status: ${BUILD_STATUS}; result: ${BUILD_RESULT_STATUS}" if [ "${BUILD_STATUS}" = "completed" ]; then + trap - INT TERM if [ "${BUILD_RESULT_STATUS}" = "succeeded" ]; then exit 0 fi From e17de4385a40477af71709844c4f31140fcd7c9a Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Tue, 29 Sep 2026 08:27:47 -0500 Subject: [PATCH 13/25] Clean up LVBS smoke test PR Remove temporary test-only repository files before rerunning the PR against the trusted fork-safe workflow. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/mcp.json | 17 ----------------- README.md | 3 --- 2 files changed, 20 deletions(-) delete mode 100644 .github/mcp.json diff --git a/.github/mcp.json b/.github/mcp.json deleted file mode 100644 index b7b4027899..0000000000 --- a/.github/mcp.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "mcpServers": { - "azure-devops": { - "type": "stdio", - "command": "npx", - "args": [ - "-y", - "@azure-devops/mcp@latest", - "msazure" - ], - "env": { - "ADO_DEFAULT_PROJECT": "LSG-linux" - }, - "tools": ["*"] - } - } -} diff --git a/README.md b/README.md index 3cde05a123..e86cdb2b08 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,3 @@ trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. - -## Testing commit -* Try2 From d6a9f8d943c67ace1752001dfe99f725fb1950ce Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Tue, 29 Sep 2026 08:28:35 -0500 Subject: [PATCH 14/25] Temporarily trigger LVBS PR validation Add a same-repository pull_request synchronize trigger solely to validate the trusted workflow before it exists on the default branch. This trigger will be removed after the end-to-end run. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 9fc0a7b612..44c00aa26f 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -6,6 +6,9 @@ on: - opened - synchronize - reopened + pull_request: + types: + - synchronize permissions: contents: read From 95b2fc55ab58601784f3cd665e66c98c1412519f Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Tue, 29 Sep 2026 15:37:24 -0500 Subject: [PATCH 15/25] Keep LVBS PR smoke on prebuilt kernel Pass a blank kernelRef when queueing the ADO smoke pipeline so GitHub PR runs remain on the credential-free prebuilt path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 44c00aa26f..9d1bea488a 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -39,6 +39,8 @@ jobs: ADO_PROJECT: LSG-linux LITEBOX_COMMIT: ${{ github.event.pull_request.head.sha }} LITEBOX_REPO_URL: ${{ github.event.pull_request.head.repo.clone_url }} + # A blank kernelRef forces the credential-free prebuilt-kernel path. + KERNEL_REF: " " with: inlineScript: | set -eu @@ -63,7 +65,7 @@ jobs: --id "${ADO_PIPELINE_ID}" \ --organization "${ADO_ORGANIZATION}" \ --project "${ADO_PROJECT}" \ - --parameters "liteboxCommit=${LITEBOX_COMMIT}" "liteboxRepoUrl=${LITEBOX_REPO_URL}" \ + --parameters "liteboxCommit=${LITEBOX_COMMIT}" "liteboxRepoUrl=${LITEBOX_REPO_URL}" "kernelRef=${KERNEL_REF}" \ --output json)" BUILD_ID="$(printf '%s\n' "${BUILD_RESULT}" | jq -r '.id // empty')" From 549d37bb95ee4ba62f68bdfc9b8569ecf729db41 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Tue, 29 Sep 2026 16:40:30 -0500 Subject: [PATCH 16/25] Use protected trigger for LVBS smoke Remove the temporary pull_request test trigger now that both ADO kernel modes and failure artifacts are validated. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 9d1bea488a..314df66ee2 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -6,9 +6,6 @@ on: - opened - synchronize - reopened - pull_request: - types: - - synchronize permissions: contents: read From f65d689a24fe3db40c2c91142b08bd515c5916a6 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:04:37 -0500 Subject: [PATCH 17/25] Trigger LVBS smoke validation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e From b658ebd8e4790514f4c98816f79e131c01d2fb4e Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:07:41 -0500 Subject: [PATCH 18/25] Temporarily trigger LVBS PR validation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 3daec430d7..dece1ad219 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -6,6 +6,9 @@ on: - opened - synchronize - reopened + pull_request: + types: + - synchronize permissions: contents: read From 545d34def99426941faba604b67ca2c38ada3a60 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:08:33 -0500 Subject: [PATCH 19/25] Restore protected LVBS smoke trigger Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index dece1ad219..3daec430d7 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -6,9 +6,6 @@ on: - opened - synchronize - reopened - pull_request: - types: - - synchronize permissions: contents: read From 121188bc86dad0fdeeb23c0f4da51395b199eb30 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:33:33 -0500 Subject: [PATCH 20/25] Keep LVBS validation visible on test PR Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 3daec430d7..54f7a39569 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -6,6 +6,10 @@ on: - opened - synchronize - reopened + # Test-only trigger for PR #1344. Remove before merging the workflow. + pull_request: + types: + - synchronize permissions: contents: read From 20d2c262389e1beb32b5a70a59067e9d4805a25b Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:38:34 -0500 Subject: [PATCH 21/25] Test LVBS stale-run cancellation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e From 06b0226b3e12b1778a211d3e0761b450b66431fd Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:42:02 -0500 Subject: [PATCH 22/25] Cancel superseded ADO smoke builds Run Azure CLI directly on the hosted runner so GitHub cancellation reaches the shell trap and cancels the linked ADO build. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 101 +++++++++++++------------- 1 file changed, 51 insertions(+), 50 deletions(-) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 54f7a39569..6a99d92304 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -33,69 +33,70 @@ jobs: allow-no-subscriptions: true - name: Trigger ADO pipeline and wait for completion - uses: azure/cli@v2 + shell: bash env: ADO_ORGANIZATION: https://dev.azure.com/msazure ADO_PIPELINE_ID: "471678" ADO_PROJECT: LSG-linux LITEBOX_COMMIT: ${{ github.event.pull_request.head.sha }} LITEBOX_REPO_URL: ${{ github.event.pull_request.head.repo.clone_url }} - with: - inlineScript: | - set -eu + run: | + set -eu - BUILD_ID="" - cancel_build() { - trap - INT TERM - if [ -n "${BUILD_ID}" ]; then - echo "Cancelling superseded ADO build ${BUILD_ID}..." - az pipelines build cancel \ - --build-id "${BUILD_ID}" \ - --organization "${ADO_ORGANIZATION}" \ - --project "${ADO_PROJECT}" \ - --output none || true - fi - exit 130 - } - trap cancel_build INT TERM + BUILD_ID="" + cancel_build() { + trap - INT TERM + if [ -n "${BUILD_ID}" ]; then + echo "Cancelling superseded ADO build ${BUILD_ID}..." + az pipelines build cancel \ + --build-id "${BUILD_ID}" \ + --organization "${ADO_ORGANIZATION}" \ + --project "${ADO_PROJECT}" \ + --output none || true + fi + exit 130 + } + trap cancel_build INT TERM - echo "Triggering ADO pipeline for Litebox commit ${LITEBOX_COMMIT}..." - BUILD_RESULT="$(az pipelines run \ - --id "${ADO_PIPELINE_ID}" \ - --organization "${ADO_ORGANIZATION}" \ - --project "${ADO_PROJECT}" \ - --parameters "liteboxCommit=${LITEBOX_COMMIT}" "liteboxRepoUrl=${LITEBOX_REPO_URL}" \ - --output json)" + az config set extension.use_dynamic_install=yes_without_prompt - BUILD_ID="$(printf '%s\n' "${BUILD_RESULT}" | jq -r '.id // empty')" - if [ -z "${BUILD_ID}" ]; then - echo "Failed to get the build ID from the pipeline trigger." - exit 1 - fi + echo "Triggering ADO pipeline for Litebox commit ${LITEBOX_COMMIT}..." + BUILD_RESULT="$(az pipelines run \ + --id "${ADO_PIPELINE_ID}" \ + --organization "${ADO_ORGANIZATION}" \ + --project "${ADO_PROJECT}" \ + --parameters "liteboxCommit=${LITEBOX_COMMIT}" "liteboxRepoUrl=${LITEBOX_REPO_URL}" \ + --output json)" - BUILD_URL="https://msazure.visualstudio.com/${ADO_PROJECT}/_build/results?buildId=${BUILD_ID}" - echo "Triggered ADO build ${BUILD_ID}: ${BUILD_URL}" + BUILD_ID="$(printf '%s\n' "${BUILD_RESULT}" | jq -r '.id // empty')" + if [ -z "${BUILD_ID}" ]; then + echo "Failed to get the build ID from the pipeline trigger." + exit 1 + fi - while true; do - BUILD_JSON="$(az pipelines build show \ - --id "${BUILD_ID}" \ - --organization "${ADO_ORGANIZATION}" \ - --project "${ADO_PROJECT}" \ - --output json)" + BUILD_URL="https://msazure.visualstudio.com/${ADO_PROJECT}/_build/results?buildId=${BUILD_ID}" + echo "Triggered ADO build ${BUILD_ID}: ${BUILD_URL}" - BUILD_STATUS="$(printf '%s\n' "${BUILD_JSON}" | jq -r '.status')" - BUILD_RESULT_STATUS="$(printf '%s\n' "${BUILD_JSON}" | jq -r '.result // "none"')" - echo "ADO build status: ${BUILD_STATUS}; result: ${BUILD_RESULT_STATUS}" + while true; do + BUILD_JSON="$(az pipelines build show \ + --id "${BUILD_ID}" \ + --organization "${ADO_ORGANIZATION}" \ + --project "${ADO_PROJECT}" \ + --output json)" - if [ "${BUILD_STATUS}" = "completed" ]; then - trap - INT TERM - if [ "${BUILD_RESULT_STATUS}" = "succeeded" ]; then - exit 0 - fi + BUILD_STATUS="$(printf '%s\n' "${BUILD_JSON}" | jq -r '.status')" + BUILD_RESULT_STATUS="$(printf '%s\n' "${BUILD_JSON}" | jq -r '.result // "none"')" + echo "ADO build status: ${BUILD_STATUS}; result: ${BUILD_RESULT_STATUS}" - echo "ADO build ${BUILD_ID} did not succeed: ${BUILD_URL}" - exit 1 + if [ "${BUILD_STATUS}" = "completed" ]; then + trap - INT TERM + if [ "${BUILD_RESULT_STATUS}" = "succeeded" ]; then + exit 0 fi - sleep 60 - done + echo "ADO build ${BUILD_ID} did not succeed: ${BUILD_URL}" + exit 1 + fi + + sleep 60 + done From 32f7a59e094921fd08727ec26c712013167469d0 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:44:42 -0500 Subject: [PATCH 23/25] Supersede active LVBS smoke run Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e From 7a66ed7e40d1b6c11f9f4dcd2c0b0785e5fdd877 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:46:51 -0500 Subject: [PATCH 24/25] Cancel ADO build after job cancellation Persist the queued build ID and run an explicit cancellation step when GitHub supersedes the workflow. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e --- .github/workflows/lvbs-smoke-test.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/lvbs-smoke-test.yml b/.github/workflows/lvbs-smoke-test.yml index 6a99d92304..93cf0d9ff2 100755 --- a/.github/workflows/lvbs-smoke-test.yml +++ b/.github/workflows/lvbs-smoke-test.yml @@ -73,6 +73,7 @@ jobs: echo "Failed to get the build ID from the pipeline trigger." exit 1 fi + echo "ADO_BUILD_ID=${BUILD_ID}" >> "${GITHUB_ENV}" BUILD_URL="https://msazure.visualstudio.com/${ADO_PROJECT}/_build/results?buildId=${BUILD_ID}" echo "Triggered ADO build ${BUILD_ID}: ${BUILD_URL}" @@ -100,3 +101,18 @@ jobs: sleep 60 done + + - name: Cancel superseded ADO pipeline + if: cancelled() && env.ADO_BUILD_ID != '' + shell: bash + env: + ADO_ORGANIZATION: https://dev.azure.com/msazure + ADO_PROJECT: LSG-linux + run: | + echo "Cancelling superseded ADO build ${ADO_BUILD_ID}..." + az config set extension.use_dynamic_install=yes_without_prompt + az pipelines build cancel \ + --build-id "${ADO_BUILD_ID}" \ + --organization "${ADO_ORGANIZATION}" \ + --project "${ADO_PROJECT}" \ + --output none From f880da9288b0c82fa5da447c7badfb0835add637 Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Wed, 30 Sep 2026 11:49:06 -0500 Subject: [PATCH 25/25] Verify explicit ADO cancellation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9873a55d-59d8-4d22-abae-b5913d12728e