Skip to content

Release 0.1.0: the tinkering-era restart #195

Release 0.1.0: the tinkering-era restart

Release 0.1.0: the tinkering-era restart #195

Workflow file for this run

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