Repository navigation
129 lines (122 loc) · 4.37 KB
/
Copy pathacceptance.yml
File metadata and controls
129 lines (122 loc) · 4.37 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
name: Product Acceptance
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: acceptance-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
env:
RIVET_PIN: 1ebb3ac09ed2e23eeb0a91cbec6e689aac01ab1a
KEEL_PIN: 0740fdfbdab7bf5dab32232c82f07dd98aa6a196
jobs:
windows:
name: Windows packaged WinUI acceptance
runs-on: windows-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- uses: Bogdanp/setup-racket@v1.15
with:
architecture: x64
distribution: full
variant: CS
version: '9.3'
- name: Install pinned dependencies
shell: pwsh
run: |
raco pkg install --auto --no-docs "https://github.com/turinglambdaai/keel.git#$env:KEEL_PIN"
raco pkg install --auto --no-docs "https://github.com/turinglambdaai/rivet.git#$env:RIVET_PIN"
- name: Verify Windows installer artwork
shell: pwsh
run: python scripts/check-windows-installer-bitmaps.py
- name: Run executable acceptance contract
shell: pwsh
run: |
New-Item -ItemType Directory -Force .rivet\acceptance | Out-Null
$report = & raco rivet acceptance --json
$status = $LASTEXITCODE
$report | Tee-Object -FilePath .rivet\acceptance\report.json
exit $status
- name: Upload Windows evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: taskly-acceptance-windows
path: .rivet/acceptance
if-no-files-found: warn
macos:
name: macOS packaged SwiftUI acceptance (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
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
- uses: Bogdanp/setup-racket@v1.15
with:
architecture: ${{ matrix.racket-arch }}
distribution: full
variant: CS
version: '9.3'
- name: Install pinned dependencies
run: |
raco pkg install --auto --no-docs "https://github.com/turinglambdaai/keel.git#${KEEL_PIN}"
raco pkg install --auto --no-docs "https://github.com/turinglambdaai/rivet.git#${RIVET_PIN}"
- name: Render DMG artwork from SVG
run: |
brew install librsvg
bash scripts/render-dmg-background.sh
- name: Run executable acceptance contract
shell: bash
run: |
set -euo pipefail
mkdir -p .rivet/acceptance
raco rivet acceptance --json | tee .rivet/acceptance/report.json
- name: Upload macOS evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: taskly-acceptance-macos-${{ matrix.arch }}
path: .rivet/acceptance
if-no-files-found: warn
linux:
name: Linux packaged GTK4 acceptance
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- name: Set up embeddable Racket CS
uses: turinglambdaai/rivet/.github/actions/setup-embed-racket@1ebb3ac09ed2e23eeb0a91cbec6e689aac01ab1a
- name: Install native and pinned Racket dependencies
shell: bash
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install --yes at-spi2-core dbus-x11 libgtk-4-dev \
libadwaita-1-dev libjson-glib-dev libsecret-1-dev python3-pyatspi weston
raco pkg install --auto --no-docs "https://github.com/turinglambdaai/keel.git#${KEEL_PIN}"
raco pkg install --auto --no-docs "https://github.com/turinglambdaai/rivet.git#${RIVET_PIN}"
raco pkg install --auto --no-docs --skip-installed db crypto
- name: Run executable acceptance contract
shell: bash
run: |
set -euo pipefail
mkdir -p .rivet/acceptance
dbus-run-session -- bash -c \
'set -euo pipefail; raco rivet acceptance --json | tee .rivet/acceptance/report.json'
- name: Upload Linux evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: taskly-acceptance-linux
path: .rivet/acceptance
if-no-files-found: warn