Merge pull request #1549 from SchoolyB/feat/io-filesystem-paths #782
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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - v3.0.0 | |
| pull_request: | |
| branches: | |
| - main | |
| - v3.0.0 | |
| jobs: | |
| test: | |
| name: Build and Test | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| go-version: ['1.23'] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| # ===== Go CLI ===== | |
| - name: Build ez CLI | |
| run: go build -o ez ./cmd/ez | |
| - name: Run Go unit tests | |
| run: go test ./pkg/lineeditor/... | |
| # ===== EZ Compiler ===== | |
| - name: Build EZ compiler | |
| run: | | |
| cd ezc | |
| make clean | |
| make build | |
| - name: Run EZ unit tests (lexer + parser + typechecker) | |
| run: | | |
| cd ezc | |
| make test-unit | |
| - name: Run EZ end-to-end tests | |
| run: | | |
| cd ezc | |
| make test-e2e | |
| - name: Run EZ integration tests (core + stdlib + named returns) | |
| run: | | |
| cd ezc | |
| make test-integration | |
| - name: Run EZ UBSan tests | |
| run: | | |
| cd ezc | |
| make test-ubsan | |
| - name: Run EZ ASan tests (Linux only) | |
| if: runner.os == 'Linux' | |
| env: | |
| ASAN_OPTIONS: detect_leaks=0 | |
| run: | | |
| cd ezc | |
| make test-asan | |
| - name: Type-check scaffolded pz templates | |
| run: | | |
| # Smoke-test every `ez pz` template against the freshly | |
| # built compiler. Catches drift between the language and | |
| # the scaffolder before a release ships (#1462). | |
| set -e | |
| tmp=$(mktemp -d) | |
| for t in basic cli lib multi; do | |
| ./ez pz "$tmp/pz-$t" -t "$t" | |
| ./ez check "$tmp/pz-$t/main.ez" | |
| done | |
| for t in server client; do | |
| for s in minimal normal; do | |
| ./ez pz "$tmp/pz-$t-$s" -t "$t" -s "$s" | |
| ./ez check "$tmp/pz-$t-$s/main.ez" | |
| done | |
| done | |
| rm -rf "$tmp" | |
| echo "All pz templates type-check clean" |