Repository navigation
122 lines (115 loc) · 4.11 KB
/
Copy pathacceptance.yml
File metadata and controls
122 lines (115 loc) · 4.11 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
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: 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: 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