fix: close architecture delta release gates #69
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: | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20, 22] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: npm | |
| cache-dependency-path: archify/package-lock.json | |
| - name: Install renderer dependencies | |
| run: npm ci | |
| working-directory: archify | |
| - name: Golden-file + schema tests | |
| run: npm test | |
| working-directory: archify | |
| webm-artifact: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Provision a known Chrome runtime | |
| id: setup-chrome | |
| uses: browser-actions/setup-chrome@v2 | |
| with: | |
| chrome-version: stable | |
| install-dependencies: true | |
| - name: Install the WebM decoder | |
| run: sudo apt-get update && sudo apt-get install --no-install-recommends -y ffmpeg | |
| - name: Decode a real motion export and reject static frames | |
| run: npm run test:webm | |
| working-directory: archify | |
| env: | |
| ARCHIFY_CHROME: ${{ steps.setup-chrome.outputs.chrome-path }} | |
| zip-freshness: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Rebuild archify.zip and compare contents | |
| run: | | |
| (cd /tmp && "$GITHUB_WORKSPACE/scripts/build-zip.sh" fresh.zip) | |
| mkdir /tmp/fresh /tmp/checked | |
| unzip -q /tmp/fresh.zip -d /tmp/fresh | |
| unzip -q archify.zip -d /tmp/checked | |
| if ! diff -r /tmp/fresh/archify /tmp/checked/archify; then | |
| echo '::error::archify.zip is stale — run scripts/build-zip.sh and commit the result' | |
| exit 1 | |
| fi | |
| package-smoke: | |
| name: package smoke (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Extract packaged skill | |
| if: runner.os != 'Windows' | |
| run: | | |
| set -euo pipefail | |
| package_root="$RUNNER_TEMP/archify-package" | |
| rm -rf "$package_root" | |
| mkdir -p "$package_root" | |
| unzip -q archify.zip -d "$package_root" | |
| - name: Extract packaged skill | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| $packageRoot = Join-Path $env:RUNNER_TEMP 'archify-package' | |
| if (Test-Path $packageRoot) { Remove-Item -Recurse -Force $packageRoot } | |
| Expand-Archive -Path archify.zip -DestinationPath $packageRoot | |
| - name: Validate packaged skill without installing dependencies | |
| run: node scripts/package-smoke.mjs |