Repository navigation
Release 0.1.3: the macOS in-app update that actually completes #211
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 | |
| 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 |