Skip to content

Maintenance round (May 2026): fix #6, add tooling, license, README rewrite #5

Maintenance round (May 2026): fix #6, add tooling, license, README rewrite

Maintenance round (May 2026): fix #6, add tooling, license, README rewrite #5

Workflow file for this run

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'