[DART-6bh3OxFUJ1qc] PTY-9 follow-on: bash read blocks for stdin und…
#199
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: Canary Tests | |
| # Per qa-rubric Directive 8: canary suite catches mode-only regressions on | |
| # every PR, in under 60s per platform. Each platform job builds both binaries | |
| # and runs the canary suite against the host-backed launcher path. | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - '.dartai/**' | |
| - '.dartai-locks.json' | |
| - 'docs/spikes/**' | |
| - 'docs/solutions/**' | |
| - '**/*.md' | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: | |
| - '.dartai/**' | |
| - '.dartai-locks.json' | |
| - 'docs/spikes/**' | |
| - 'docs/solutions/**' | |
| - '**/*.md' | |
| workflow_dispatch: | |
| # Cancel earlier runs on the same ref/PR when new commits arrive. | |
| concurrency: | |
| group: canary-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| canary: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| fail-fast: false | |
| runs-on: ${{ matrix.os }} | |
| name: canary (${{ matrix.os }}) | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Build ps-bash binary | |
| shell: bash | |
| run: dotnet build src/PsBash.Shell -c Release | |
| # Build the host so the launcher has a binary to spawn. | |
| - name: Build ps-bash-host binary | |
| shell: bash | |
| run: dotnet build src/PsBash.Host -c Release | |
| - name: Run canary tests | |
| shell: bash | |
| timeout-minutes: 10 | |
| run: | | |
| dotnet test src/PsBash.Canary.Tests \ | |
| --configuration Release \ | |
| --logger "trx;LogFileName=canary.trx" \ | |
| --results-directory TestResults \ | |
| --blame-hang-timeout 3m \ | |
| --blame-hang-dump-type none | |
| - name: Upload canary test artifacts | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: canary-test-results-${{ matrix.os }} | |
| path: TestResults/**/*.trx | |
| if-no-files-found: ignore |