Auto trigger ADO pipeline for PR by Azure member #2
Workflow file for this run
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: Auto Trigger ADO Pipeline for Azure Members | |
| run-name: Auto trigger ADO pipeline for PR by Azure member | |
| on: | |
| pull_request: | |
| types: [opened, synchronize] | |
| jobs: | |
| check-and-trigger: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| contents: read | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| sparse-checkout: | | |
| tools/GitHubOrgMember | |
| - name: Get PR author and check Azure org membership | |
| shell: pwsh | |
| env: | |
| PR_AUTHOR: ${{ github.event.pull_request.user.login }} | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| run: | | |
| Write-Host "Checking if PR author '$env:PR_AUTHOR' is an Azure organization member..." | |
| # Use the existing script to check membership | |
| $membershipResult = & "./tools/GitHubOrgMember/Check-AzureOrgMembership.ps1" -Username $env:PR_AUTHOR -Quiet | |
| Write-Host "Membership check result:" | |
| Write-Host "Username: $($membershipResult.Username)" | |
| Write-Host "Organization: $($membershipResult.Organization)" | |
| Write-Host "IsMember: $($membershipResult.IsMember)" | |
| Write-Host "Status: $($membershipResult.Status)" | |
| if ($membershipResult.ErrorMessage) { | |
| Write-Host "Error: $($membershipResult.ErrorMessage)" | |
| } | |
| # Set output for next step | |
| echo "IS_AZURE_MEMBER=$($membershipResult.IsMember)" >> $env:GITHUB_ENV | |
| echo "MEMBERSHIP_STATUS=$($membershipResult.Status)" >> $env:GITHUB_ENV | |
| - name: Trigger ADO pipeline for Azure member | |
| if: env.IS_AZURE_MEMBER == 'True' | |
| shell: pwsh | |
| env: | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| run: | | |
| try { | |
| Write-Host "PR author is an Azure member. Proceeding to trigger ADO pipeline..." | |
| # Comment "/azp run" on the PR to trigger ADO pipeline | |
| Write-Host "Commenting '/azp run' on PR #$env:PR_NUMBER to trigger ADO pipeline..." | |
| gh pr comment $env:PR_NUMBER --body "/azp run" | |
| Write-Host "✅ Successfully triggered ADO pipeline for PR #$env:PR_NUMBER" | |
| } | |
| catch { | |
| Write-Error "❌ Failed to trigger ADO pipeline: $($_.Exception.Message)" | |
| exit 1 | |
| } |