build(deps): bump pkg-config from 0.3.33 to 0.3.34 #186
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: Windows installer contract | |
| on: | |
| push: | |
| paths: | |
| - .github/workflows/windows-installer.yml | |
| - assets/windows-installer.nsi | |
| - scripts/generate-nsis-uninstall-include.sh | |
| - scripts/compile-windows-installer.sh | |
| - scripts/package-release.sh | |
| - scripts/package-windows-installer.sh | |
| - scripts/package-windows-installer-upgrade-fixtures.sh | |
| - scripts/run-windows-installer-contract.ps1 | |
| - scripts/test-windows-installer.ps1 | |
| - scripts/test-windows-installer-upgrade.ps1 | |
| - crates/xtask/** | |
| pull_request: | |
| paths: | |
| - .github/workflows/windows-installer.yml | |
| - assets/windows-installer.nsi | |
| - scripts/generate-nsis-uninstall-include.sh | |
| - scripts/compile-windows-installer.sh | |
| - scripts/package-release.sh | |
| - scripts/package-windows-installer.sh | |
| - scripts/package-windows-installer-upgrade-fixtures.sh | |
| - scripts/run-windows-installer-contract.ps1 | |
| - scripts/test-windows-installer.ps1 | |
| - scripts/test-windows-installer-upgrade.ps1 | |
| - crates/xtask/** | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| installer-contract: | |
| name: install, upgrade, and uninstall (${{ matrix.arch }}) | |
| # Both architectures, so the aarch64 contract can be iterated on WITHOUT | |
| # cutting a release tag. It was previously exercised only by release.yml, | |
| # which made every attempt at it cost a full release round and blocked the | |
| # release when it failed. | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: x86_64 | |
| runner: windows-latest | |
| - arch: aarch64 | |
| runner: windows-11-arm | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 180 | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| RUST_LOG: info | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Rust tooling | |
| uses: ./.github/actions/setup-rust | |
| with: | |
| cache-key: windows-msvc-x86_64 | |
| - name: Install NSIS | |
| run: choco install nsis -y | |
| - name: Add NSIS to PATH | |
| shell: powershell | |
| run: Add-Content -Path $env:GITHUB_PATH -Value "C:\Program Files (x86)\NSIS" | |
| - name: Run fresh build | |
| shell: bash | |
| timeout-minutes: 150 | |
| run: | | |
| cargo xtask fresh-build --release | |
| - name: GUI smoke (launch, frame snapshot, PNG readback) | |
| shell: bash | |
| timeout-minutes: 10 | |
| run: | | |
| set -x | |
| mkdir -p gui-artifacts | |
| export NEOMACS_GUI_FRAME_SNAPSHOT_JSON="$PWD/gui-artifacts/snapshot.json" | |
| export NEOMACS_GUI_FRAME_SNAPSHOT_TXT="$PWD/gui-artifacts/snapshot.txt" | |
| export NEOMACS_GUI_STATE_JSON="$PWD/gui-artifacts/gui-state.json" | |
| export NEOMACS_DEBUG_FIRST_FRAME_READBACK=1 | |
| export NEOMACS_DEBUG_SURFACE_READBACK=1 | |
| export NEOMACS_DEBUG_SURFACE_READBACK_PNG="$PWD/gui-artifacts/frame.png" | |
| export RUST_BACKTRACE=1 | |
| # The fixture self-terminates after ~2s; watchdog guards a wgpu hang. | |
| ./target/release/neomacs.exe -Q -l crates/neomacs-gui-tests/fixtures/startup-smoke.el \ | |
| > gui-artifacts/neomacs.log 2>&1 & | |
| PID=$! | |
| for _ in $(seq 1 60); do kill -0 "$PID" 2>/dev/null || break; sleep 1; done | |
| kill "$PID" 2>/dev/null || taskkill //F //PID "$PID" 2>/dev/null || true | |
| echo "=== artifacts ==="; ls -la gui-artifacts/ || true | |
| echo "=== last of neomacs.log ==="; tail -60 gui-artifacts/neomacs.log || true | |
| if [ -s gui-artifacts/snapshot.json ]; then | |
| echo "SNAPSHOT OK ($(wc -c < gui-artifacts/snapshot.json) bytes)" | |
| else | |
| echo "NO FRAME SNAPSHOT PRODUCED - GUI did not render"; exit 1 | |
| fi | |
| - name: Upload GUI smoke artifacts | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: windows-gui-smoke | |
| path: gui-artifacts/ | |
| if-no-files-found: warn | |
| - name: Run Windows package script | |
| shell: bash | |
| timeout-minutes: 20 | |
| run: | | |
| ./scripts/package-windows-installer.sh --skip-build --no-smoke | |
| - name: Verify Windows installer ownership contract | |
| shell: powershell | |
| timeout-minutes: 10 | |
| run: >- | |
| ./scripts/run-windows-installer-contract.ps1 | |
| -Architecture "${{ matrix.arch }}" | |
| -ConfirmEphemeralRunner |