Skip to content

[DART-6bh3OxFUJ1qc] PTY-9 follow-on: bash read blocks for stdin und… #199

[DART-6bh3OxFUJ1qc] PTY-9 follow-on: bash read blocks for stdin und…

[DART-6bh3OxFUJ1qc] PTY-9 follow-on: bash read blocks for stdin und… #199

Workflow file for this run

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