Skip to content

Release 0.1.3: the macOS in-app update that actually completes #211

Release 0.1.3: the macOS in-app update that actually completes

Release 0.1.3: the macOS in-app update that actually completes #211

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
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: Setup Racket CS 9.3
uses: Bogdanp/setup-racket@v1.15
with:
architecture: x64
distribution: full
variant: CS
version: '9.3'
- name: Install Rivet (catalog)
run: raco pkg install --auto --no-docs 'https://github.com/turinglambdaai/rivet.git#v0.8.1'
- 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: 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
# Builds and caches the embeddable Racket CS runtime and exports
# RIVET_RACKET_* (rivet's own composite action).
- name: Set up embeddable Racket CS
uses: turinglambdaai/rivet/.github/actions/setup-embed-racket@main
# Installed after the embeddable runtime so the catalog dependency
# closure (cext-lib, crypto-lib, keel) resolves against the minimal
# build — it ships no packages of its own. db backs taskly's storage;
# crypto backs the updater's signing.
- name: Install Rivet (catalog) and backend packages
run: |
raco pkg install --auto --no-docs 'https://github.com/turinglambdaai/rivet.git#v0.8.1'
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: 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: Install Rivet (catalog)
run: raco pkg install --auto --no-docs 'https://github.com/turinglambdaai/rivet.git#v0.8.1'
- 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: Setup Racket CS 9.3
uses: Bogdanp/setup-racket@v1.15
with:
architecture: x64
distribution: full
variant: CS
version: '9.3'
- name: Install Rivet (catalog)
shell: bash
run: raco pkg install --auto --no-docs 'https://github.com/turinglambdaai/rivet.git#v0.8.1'
- name: Build host
shell: pwsh
run: raco rivet build