Repository navigation
Release 0.1.0: the tinkering-era restart #195
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] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| env: | |
| # Exact Rivet commit the hosts build against (migration policy: pinned). | |
| # Bump together with host code; local dev may track rivet main. | |
| RIVET_PIN: 410fc7c6987cda5fcf4e4f795d1d4f7a90d4e0f6 | |
| jobs: | |
| contract: | |
| name: Contract preflight (i18n + release metadata) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Verify platform i18n copies match shared/i18n | |
| run: scripts/sync-i18n.sh --check | |
| - name: Verify release version alignment | |
| run: bash scripts/check-release-version.sh | |
| core: | |
| name: Racket core (contract tests) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Checkout Rivet at pin | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: turinglambdaai/rivet | |
| ref: ${{ env.RIVET_PIN }} | |
| path: rivet | |
| - name: Setup Racket CS 9.3 | |
| uses: Bogdanp/setup-racket@v1.15 | |
| with: | |
| architecture: x64 | |
| distribution: full | |
| variant: CS | |
| version: '9.3' | |
| - name: Link Rivet | |
| run: raco pkg install --auto --no-docs --name rivet --link "$GITHUB_WORKSPACE/rivet" | |
| - name: Core contract tests | |
| run: raco test racket/ | |
| # Golden CLI suite (61 cases): byte-identical stdout/stderr/exit codes | |
| # against shared/cli-golden/, run through the system-racket CLI shim. | |
| - name: Golden CLI suite | |
| run: python3 shared/cli-golden/runner.py --binary scripts/taskly-cli.sh | |
| linux-host: | |
| name: Linux host (GTK4 build) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Checkout Rivet at pin | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: turinglambdaai/rivet | |
| ref: ${{ env.RIVET_PIN }} | |
| path: rivet | |
| - name: Setup Racket CS 9.3 | |
| uses: Bogdanp/setup-racket@v1.15 | |
| with: | |
| architecture: x64 | |
| distribution: full | |
| variant: CS | |
| version: '9.3' | |
| - name: Install GTK toolchain | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y cmake ninja-build pkg-config \ | |
| libgtk-4-dev libadwaita-1-dev libjson-glib-dev \ | |
| libsecret-1-dev libglib2.0-dev | |
| - name: Link Rivet | |
| run: raco pkg install --auto --no-docs --name rivet --link "$GITHUB_WORKSPACE/rivet" | |
| # Builds and caches the pinned embeddable Racket CS runtime and | |
| # exports RIVET_RACKET_* (rivet's own composite action — replaces the | |
| # hand-rolled build+cache steps). | |
| - name: Set up embeddable Racket CS | |
| uses: ./rivet/.github/actions/setup-embed-racket | |
| # The backend needs db (and rivet/distribution needs crypto); install | |
| # both into the minimal embeddable runtime the action provisioned. | |
| - name: Install backend packages into the embeddable runtime | |
| run: raco pkg install --auto --no-docs db crypto | |
| - name: Toolchain doctor | |
| run: raco rivet doctor --json | |
| - name: Build host | |
| run: raco rivet build | |
| - name: Headless boot smoke | |
| run: | | |
| sudo apt-get install -y xvfb | |
| xvfb-run -a ./.rivet/stage/RivetHost & | |
| APP_PID=$! | |
| sleep 8 | |
| kill -0 $APP_PID | |
| kill $APP_PID | |
| macos-host: | |
| name: macOS host (${{ matrix.arch }} build) | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: arm64 | |
| runner: macos-15 | |
| racket-arch: arm64 | |
| - arch: x64 | |
| runner: macos-15-intel | |
| racket-arch: x64 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Checkout Rivet at pin | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: turinglambdaai/rivet | |
| ref: ${{ env.RIVET_PIN }} | |
| path: rivet | |
| - name: Setup Racket CS 9.3 | |
| uses: Bogdanp/setup-racket@v1.15 | |
| with: | |
| # Each leg builds the architecture it will package (release.yml | |
| # macos matrix matches). | |
| architecture: ${{ matrix.racket-arch }} | |
| distribution: full | |
| variant: CS | |
| version: '9.3' | |
| - name: Link Rivet | |
| run: raco pkg install --auto --no-docs --name rivet --link "$GITHUB_WORKSPACE/rivet" | |
| - name: Build host | |
| run: raco rivet build | |
| - name: Boot smoke | |
| run: | | |
| smoke_home="$RUNNER_TEMP/taskly-smoke-home" | |
| mkdir -p "$smoke_home" | |
| HOME="$smoke_home" ./.rivet/stage/RivetHost & | |
| APP_PID=$! | |
| sleep 8 | |
| kill -0 $APP_PID | |
| kill $APP_PID | |
| windows-host: | |
| name: Windows host (WinRT build) | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Checkout Rivet at pin | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: turinglambdaai/rivet | |
| ref: ${{ env.RIVET_PIN }} | |
| path: rivet | |
| - name: Setup Racket CS 9.3 | |
| uses: Bogdanp/setup-racket@v1.15 | |
| with: | |
| architecture: x64 | |
| distribution: full | |
| variant: CS | |
| version: '9.3' | |
| - name: Link Rivet | |
| shell: bash | |
| run: raco pkg install --auto --no-docs --name rivet --link "$GITHUB_WORKSPACE/rivet" | |
| - name: Build host | |
| shell: pwsh | |
| run: raco rivet build |