Bump js-yaml from 4.3.0 to 4.3.1 #81
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: Non-Windows | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 45 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - macos-latest | |
| - ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24.19.0 | |
| cache: npm | |
| - name: Validate lockfile portability | |
| run: npm run check:lockfile | |
| - name: Validate source installer guardrails | |
| run: | | |
| bash -n install.sh | |
| set +e | |
| output="$(SKILL_RECORDER_COMMIT=main bash install.sh 2>&1)" | |
| status=$? | |
| set -e | |
| if [ "$status" -eq 0 ]; then | |
| echo "install.sh accepted a mutable source reference" >&2 | |
| exit 1 | |
| fi | |
| printf '%s\n' "$output" | grep -q "full 40-character" | |
| - name: Test commit-pinned source installation | |
| env: | |
| SKILL_RECORDER_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }} | |
| SKILL_RECORDER_INSTALL_ROOT: ${{ runner.temp }}/skill-recorder-source | |
| SKILL_RECORDER_NO_LAUNCH: "1" | |
| run: bash install.sh | |
| - name: Verify macOS relaunch app bundle | |
| if: runner.os == 'macOS' | |
| run: | | |
| app="$HOME/Applications/Skill Recorder (Source).app" | |
| stub="$app/Contents/MacOS/skill-recorder-source" | |
| plist="$app/Contents/Info.plist" | |
| test -d "$app" | |
| test -x "$stub" | |
| plutil -lint "$plist" | |
| - run: npm ci --ignore-scripts=false --dangerously-allow-all-scripts=false --strict-allow-scripts | |
| - name: Cache compliance source downloads | |
| uses: actions/cache@v4 | |
| with: | |
| path: .compliance-cache | |
| key: compliance-${{ runner.os }}-${{ hashFiles('third_party/compliance-policy.json') }} | |
| restore-keys: compliance-${{ runner.os }}- | |
| # macOS arm64 is a release target, so it must be able to produce the complete | |
| # corresponding-source bundle. Linux installs from source and only needs the | |
| # license inventory. | |
| - name: Prepare compliance materials (release target) | |
| if: runner.os == 'macOS' | |
| run: npm run compliance:prepare | |
| - name: Prepare compliance licenses (source-install platform) | |
| if: runner.os != 'macOS' | |
| run: npm run compliance:licenses | |
| - name: Verify platform license coverage | |
| run: | | |
| node --input-type=module -e " | |
| import { existsSync, readFileSync } from 'node:fs'; | |
| const inventory = JSON.parse(readFileSync('.compliance/LICENSE-INVENTORY.json')); | |
| const libvips = inventory.packages.find(({ name }) => | |
| name.startsWith('@img/sharp-libvips-')); | |
| if (!libvips || !libvips.licenseSource.includes('licenses/LGPL-3.0.txt')) | |
| throw new Error('Platform Sharp/libvips LGPL coverage is missing'); | |
| if (!existsSync('.compliance/licenses/LGPL-3.0.txt')) | |
| throw new Error('Canonical LGPL-3.0 text is missing'); | |
| const wasm = inventory.packages.find(({ name }) => name === '@img/sharp-wasm32'); | |
| if (wasm) { | |
| for (const term of ['LICENSE', 'licenses/LGPL-3.0.txt', 'canonical SPDX MIT text']) | |
| if (!wasm.licenseSource.includes(term)) | |
| throw new Error('@img/sharp-wasm32 license term ' + term + ' is unresolved'); | |
| } | |
| const native = JSON.parse(readFileSync('.compliance/NATIVE-COMPONENTS.json')); | |
| if (native.packages.length !== 1) | |
| throw new Error('Exactly one native payload must be selected'); | |
| if (!native.packages[0].name.endsWith('-' + process.arch)) | |
| throw new Error('Native payload does not match the runner architecture'); | |
| for (const excluded of native.excludedFromArtifacts) | |
| if (native.packages[0].name === excluded) | |
| throw new Error('An excluded WASM package was selected as the native payload'); | |
| " | |
| - name: Verify optional window provider | |
| run: >- | |
| node --input-type=module -e | |
| "const m = await import('get-windows'); | |
| if (typeof m.activeWindow !== 'function') | |
| throw new Error('get-windows activeWindow export is unavailable')" | |
| - run: npm test | |
| - run: npm run build |