Cap human-triggered captures at 2K; track harness formats with dates #7
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 | |
| # Note: GitHub Actions does not support YAML anchors/aliases, so the | |
| # paths-ignore list is spelled out for each trigger. Keep the two in sync. | |
| # | |
| # Gotcha: GitHub honors the skip-CI token anywhere in a commit message, | |
| # including the body. A commit that merely *mentions* it in prose will skip | |
| # its own run — spell it defensively when writing about it. | |
| on: | |
| push: | |
| branches: ['main'] | |
| paths-ignore: ['Casks/**', 'docs/**', '**.md', 'LICENSE'] | |
| pull_request: | |
| branches: ['main'] | |
| paths-ignore: ['Casks/**', 'docs/**', '**.md', 'LICENSE'] | |
| # Path filters apply only to push/pull_request, never to a workflow_call, so | |
| # the release gate always runs the suite regardless of what the tag touched. | |
| workflow_call: | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| build-and-test: | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Cache SPM dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: .build | |
| key: ${{ runner.os }}-spm-${{ hashFiles('Package.resolved') }} | |
| restore-keys: | | |
| ${{ runner.os }}-spm- | |
| - name: Build | |
| run: swift build | |
| # Executable test runner, not XCTest — see Sources/SeenTests/AllTests.swift. | |
| # Everything here is headless: no Screen Recording grant, no windows. | |
| - name: Test | |
| run: swift run SeenTests |