CI: pin silent typed Rivet runtime #18
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: Racket Core | |
| on: | |
| push: | |
| branches: [main, experiment/taskly-rivet] | |
| paths: | |
| - 'racket/**' | |
| - 'rivet.rktd' | |
| - '.github/workflows/racket-core.yml' | |
| pull_request: | |
| paths: | |
| - 'racket/**' | |
| - 'rivet.rktd' | |
| - '.github/workflows/racket-core.yml' | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: racket-core-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| core: | |
| name: Racket core (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Racket CS | |
| uses: Bogdanp/setup-racket@v1.15 | |
| with: | |
| architecture: x64 | |
| distribution: full | |
| variant: CS | |
| version: '9.3' | |
| - name: Compile core | |
| run: raco make racket/taskly/service.rkt racket/taskly/date-parser.rkt | |
| - name: Test core contracts | |
| run: raco test racket/tests/core-test.rkt | |
| rivet-backend: | |
| name: Rivet managed end-to-end | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Racket CS | |
| uses: Bogdanp/setup-racket@v1.15 | |
| with: | |
| architecture: x64 | |
| distribution: full | |
| variant: CS | |
| version: '9.3' | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - name: Install pinned Rivet | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| git clone https://github.com/turinglambdaai/rivet.git "$RUNNER_TEMP/rivet" | |
| git -C "$RUNNER_TEMP/rivet" checkout a582f12624c672c9a51bf711b8b9dff4a8b652ba | |
| raco pkg install --auto --no-docs --name rivet --link "$RUNNER_TEMP/rivet" | |
| - name: Compile Taskly Rivet backend | |
| run: raco make racket/taskly/backend.rkt | |
| - name: Test typed Rivet schema | |
| run: raco test racket/tests/rivet-schema-test.rkt | |
| - name: Generate managed Taskly API | |
| run: raco rivet generate-dotnet | |
| - name: Exercise managed Taskly vertical slice | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| dotnet run \ | |
| --project racket/tests/dotnet-rivet-smoke/Taskly.RivetSmoke.csproj \ | |
| -c Release \ | |
| -p:RivetRoot="$RUNNER_TEMP/rivet" \ | |
| -- "$GITHUB_WORKSPACE" |