Skip to content

Commit

Permalink
[ProtectedFiles] Skip steps instead of job (#30827)
Browse files Browse the repository at this point in the history
- Check is required
  • Loading branch information
mikeharder authored Oct 2, 2024
1 parent bd27eca commit cd206d5
Showing 1 changed file with 27 additions and 25 deletions.
52 changes: 27 additions & 25 deletions .github/workflows/protected-files.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,34 @@ jobs:
protected-files:
name: Protected Files

# Always allow bot account 'azure-sdk' to update protected files
if: ${{ github.event.pull_request.user.login != 'azure-sdk' }}

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
# Required since "HEAD^" is passed to Get-ChangedFiles
fetch-depth: 2

- name: Detect changes to protected files
run: |
. eng/scripts/ChangedFiles-Functions.ps1
$protectedFiles = @("package.json", "package-lock.json")
$changedFiles = @(Get-ChangedFiles -baseCommitish HEAD^ -targetCommitish HEAD -diffFilter "")
$matchedFiles = @($protectedFiles | Where-Object { $changedFiles -contains $_})
if ($matchedFiles.Count -gt 0) {
foreach ($file in $matchedFiles) {
Write-Output "::error file=$file::File '$file' should only be updated by the Azure SDK team. If intentional, the PR may be merged by the Azure SDK team via bypassing the branch protections."
# Always allow bot account 'azure-sdk' to update protected files.
# Since check is required, the job itself cannot be skipped, but all steps can.

- uses: actions/checkout@v4
if: github.event.pull_request.user.login != 'azure-sdk'
with:
# Required since "HEAD^" is passed to Get-ChangedFiles
fetch-depth: 2

- name: Detect changes to protected files
if: github.event.pull_request.user.login != 'azure-sdk'
run: |
. eng/scripts/ChangedFiles-Functions.ps1
$protectedFiles = @("package.json", "package-lock.json")
$changedFiles = @(Get-ChangedFiles -baseCommitish HEAD^ -targetCommitish HEAD -diffFilter "")
$matchedFiles = @($protectedFiles | Where-Object { $changedFiles -contains $_})
if ($matchedFiles.Count -gt 0) {
foreach ($file in $matchedFiles) {
Write-Output "::error file=$file::File '$file' should only be updated by the Azure SDK team. If intentional, the PR may be merged by the Azure SDK team via bypassing the branch protections."
}
exit 1
}
else {
Write-Output "No changes to protected files: [$($protectedFiles -join ', ')]"
}
exit 1
}
else {
Write-Output "No changes to protected files: [$($protectedFiles -join ', ')]"
}
shell: pwsh
shell: pwsh

0 comments on commit cd206d5

Please sign in to comment.