Maintenance round (May 2026): fix #6, add tooling, license, README rewrite #5
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: ci | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| name: lint + format + audit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: lint | |
| run: bash tools/lint-bat.sh WinMasterBlocker.bat | |
| - name: format-check | |
| run: bash tools/format-check.sh WinMasterBlocker.bat | |
| - name: audit-coverage | |
| run: bash tools/audit-coverage.sh WinMasterBlocker.bat | |
| integration: | |
| name: WHATIF integration on Windows | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: stage fake vendor tree | |
| shell: pwsh | |
| run: | | |
| $root = Join-Path $env:RUNNER_TEMP 'wmb-fake' | |
| New-Item -ItemType Directory -Force -Path $root | Out-Null | |
| $adobe = Join-Path $root 'Program Files\Adobe\Acrobat DC\Acrobat\acrocef_1' | |
| New-Item -ItemType Directory -Force -Path $adobe | Out-Null | |
| New-Item -ItemType File -Force -Path (Join-Path $adobe 'acrocef.exe') | Out-Null | |
| $rdr = Join-Path $root 'Program Files\Adobe\Reader DC\Reader' | |
| New-Item -ItemType Directory -Force -Path $rdr | Out-Null | |
| New-Item -ItemType File -Force -Path (Join-Path $rdr 'RdrCEF.exe') | Out-Null | |
| New-Item -ItemType Directory -Force -Path (Join-Path $root 'Program Files (x86)\Adobe') | Out-Null | |
| New-Item -ItemType Directory -Force -Path (Join-Path $root 'Common Files\Adobe') | Out-Null | |
| New-Item -ItemType Directory -Force -Path (Join-Path $root 'Common Files (x86)\Adobe') | Out-Null | |
| New-Item -ItemType Directory -Force -Path (Join-Path $root 'ProgramData\Adobe') | Out-Null | |
| New-Item -ItemType Directory -Force -Path (Join-Path $root 'AppData\Local\Adobe') | Out-Null | |
| New-Item -ItemType Directory -Force -Path (Join-Path $root 'AppData\Roaming\Adobe') | Out-Null | |
| "FAKE_ROOT=$root" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 | |
| - name: run script in WHATIF mode | |
| shell: cmd | |
| env: | |
| WHATIF: "1" | |
| WMB_VENDOR: "Adobe" | |
| WMB_QUIET: "1" | |
| # WMB_TEST_ROOT redirects every path lookup to the fake tree we | |
| # staged above. Cleaner than trying to override %ProgramFiles% | |
| # from the workflow: GitHub Actions Windows runners ignore | |
| # workflow-level overrides for well-known Windows system vars. | |
| WMB_TEST_ROOT: ${{ runner.temp }}\wmb-fake | |
| run: | | |
| echo 0& WinMasterBlocker.bat | |
| - name: assert AcroCEF + RdrCEF present in transcript | |
| shell: pwsh | |
| run: | | |
| $log = Get-ChildItem $env:TEMP -Filter 'WinMasterBlocker-*.log' | Sort-Object LastWriteTime -Descending | Select-Object -First 1 | |
| if (-not $log) { Write-Error 'no transcript log produced'; exit 1 } | |
| Write-Host "transcript: $($log.FullName)" | |
| $body = Get-Content $log.FullName -Raw | |
| Write-Host "----- transcript -----" | |
| Write-Host $body | |
| Write-Host "----- /transcript -----" | |
| if ($body -notmatch 'acrocef\.exe') { Write-Error 'transcript missing acrocef.exe'; exit 1 } | |
| if ($body -notmatch 'RdrCEF\.exe') { Write-Error 'transcript missing RdrCEF.exe'; exit 1 } | |
| if ($body -notmatch 'WHATIF') { Write-Error 'transcript missing WHATIF marker'; exit 1 } | |
| Write-Host 'integration ok' |