Repository navigation
147 lines (139 loc) · 4.73 KB
/
Copy pathci.yml
File metadata and controls
147 lines (139 loc) · 4.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
# Single source of truth for the rivet pin; every install step below
# references this so a bump is one edit, not a grep-replace across jobs.
env:
RIVET_PIN: v0.11.0
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#${{ env.RIVET_PIN }}'
- 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@v0.11.0
# 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#${{ env.RIVET_PIN }}'
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#${{ env.RIVET_PIN }}'
- 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#${{ env.RIVET_PIN }}'
- name: Build host
shell: pwsh
run: raco rivet build