[confcom] Make dependency fetching more resilient (#9441) #2105
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Trigger ADO OneBranch Extension Release Pipeline | |
| # Run this workflow every time a commit gets pushed to main | |
| # This triggers the ADO OneBranch Extension Release Pipeline | |
| on: | |
| push: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read | |
| id-token: write | |
| jobs: | |
| build: | |
| name: Trigger Extension Release Pipeline | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Harden Runner | |
| uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0 | |
| with: | |
| egress-policy: audit | |
| - name: Azure login | |
| uses: azure/login@v2 | |
| with: | |
| client-id: ${{ secrets.ADO_SP_ClientID }} | |
| tenant-id: ${{ secrets.ADO_SP_TenantID }} | |
| allow-no-subscriptions: true | |
| - name: Trigger ADO Pipeline and Wait for Completion | |
| uses: azure/cli@v2 | |
| env: | |
| ado-org: ${{secrets.ADO_ORGANIZATION}} | |
| ado-project: ${{secrets.ADO_PROJECT}} | |
| ado-pipeline-id: ${{secrets.ADO_PIPELINE_ID}} | |
| commit-id: ${{ github.sha }} | |
| with: | |
| inlineScript: | | |
| # Trigger the pipeline and capture the build ID | |
| echo "Triggering ADO pipeline..." | |
| BUILD_RESULT=$(az pipelines build queue \ | |
| --definition-id ${{ env.ado-pipeline-id }} \ | |
| --organization ${{ env.ado-org }} \ | |
| --project ${{ env.ado-project }} \ | |
| --variables commit_id=${{ env.commit-id }} \ | |
| --output json) | |
| BUILD_ID=$(echo $BUILD_RESULT | jq -r '.id') | |
| echo "Pipeline triggered with Build ID: $BUILD_ID" | |
| if [ "$BUILD_ID" = "null" ] || [ -z "$BUILD_ID" ]; then | |
| echo "Failed to get build ID from pipeline trigger" | |
| exit 1 | |
| fi | |
| # Wait for the build to complete | |
| echo "Waiting for build $BUILD_ID to complete..." | |
| while true; do | |
| BUILD_JSON=$(az pipelines build show \ | |
| --id $BUILD_ID \ | |
| --organization ${{ env.ado-org }} \ | |
| --project ${{ env.ado-project }} \ | |
| --output json) | |
| BUILD_STATUS=$(echo "$BUILD_JSON" | jq -r '.status') | |
| BUILD_RESULT_STATUS=$(echo "$BUILD_JSON" | jq -r '.result // "none"') | |
| echo "Current status: $BUILD_STATUS, Result: $BUILD_RESULT_STATUS" | |
| # Check if build is completed | |
| if [ "$BUILD_STATUS" = "completed" ]; then | |
| echo "Build completed with result: $BUILD_RESULT_STATUS" | |
| # Check if the build was successful | |
| if [ "$BUILD_RESULT_STATUS" = "succeeded" ]; then | |
| echo "✅ ADO pipeline build succeeded!" | |
| exit 0 | |
| elif [ "$BUILD_RESULT_STATUS" = "partiallySucceeded" ]; then | |
| echo "⚠️ ADO pipeline build partially succeeded" | |
| exit 1 | |
| else | |
| echo "❌ ADO pipeline build failed with result: $BUILD_RESULT_STATUS" | |
| exit 1 | |
| fi | |
| fi | |
| # Check for other terminal states | |
| if [ "$BUILD_STATUS" = "cancelling" ] || [ "$BUILD_STATUS" = "cancelled" ]; then | |
| echo "❌ ADO pipeline build was cancelled" | |
| exit 1 | |
| fi | |
| # Wait 60 seconds before checking again | |
| echo "Build still running... waiting 60 seconds" | |
| sleep 60 | |
| done |