Repository navigation
152 lines (126 loc) · 4.08 KB
/
Copy pathapp.yml
File metadata and controls
152 lines (126 loc) · 4.08 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
148
149
150
151
152
name: app
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
workflow_call:
permissions:
contents: read
env:
DOBBY_COMMIT: "5dfc8546954ce3b3198132ab13fddb89ee92cdd7"
FONT_TOOLS: "afdko==4.0.3 fonttools==4.66.1"
jobs:
build:
name: full app build
runs-on: xcode-27
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Record the toolchain
run: |
sudo xcode-select -s /Applications/Xcode_27.0.app
xcodebuild -version
swift --version
echo "macOS SDK $(xcrun --sdk macosx --show-sdk-version)"
- name: Install cross compilers
run: brew install mingw-w64 bison flex
- name: Clone Dobby at the pinned commit
run: |
git clone --no-checkout https://github.com/jmpews/Dobby.git vendor/dobby
git -C vendor/dobby checkout $DOBBY_COMMIT
- name: Restore Dobby build cache
id: dobby-cache
uses: actions/cache@v4
with:
path: build/dobby
key: dobby-xcode-27-${{ env.DOBBY_COMMIT }}-${{ runner.arch }}
- name: Build Dobby
if: steps.dobby-cache.outputs.cache-hit != 'true'
run: make dobby
- name: Restore the Wine trees
id: wine-cache
uses: actions/cache/restore@v4
with:
path: |
scratch/wine
scratch/wine-build-dual
scratch/wine-build-arm64
key: wine-xcode-27-${{ hashFiles('bridge/setup-wine-tree.sh', 'bridge/register-components.diff') }}
- name: Restore Proton tarball cache
uses: actions/cache@v4
with:
path: scratch/proton-lsc
key: proton-tarball-${{ hashFiles('lsteamclient/fetch.sh') }}
- name: Build the dylib
run: make all
- name: Build the overlay shim
run: make overlay-shim
- name: Build helpers
run: make iconmaker appinfo
- name: Build the bridge
run: make bridge
- name: Save the Wine trees
if: steps.wine-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: |
scratch/wine
scratch/wine-build-dual
scratch/wine-build-arm64
key: wine-xcode-27-${{ hashFiles('bridge/setup-wine-tree.sh', 'bridge/register-components.diff') }}
- name: Install font tools
run: |
brew install fontforge gpatch
python3 -m venv scratch/fontvenv
scratch/fontvenv/bin/pip install $FONT_TOOLS
echo "$PWD/scratch/fontvenv/bin" >> "$GITHUB_PATH"
- name: Build the fonts
run: make fonts
- name: Stage the app payload
run: make app-payload
- name: Build the app
run: make app
- name: Check the minimum macOS version
run: make -s mincheck
- name: Check the translations
run: make -s l10ncheck
- name: Run the hermetic C suites
run: |
make -s sigcheck
make -s callscheck
make -s webpatch-fixtures
make -s peicon-fixtures
make -s panel-behavior
make -s spawn-env
make -s activatecheck
make -s compatcheck
make -s compatsvc-check
make -s prefixstate-check
make -s defaults-check
make -s compatpage-check
make -s defaults-drift
make -s shortcutcheck
make -s launch-shell
make -s envcheck
make -s envpasscheck
make -s featcheck
make -s featstagecheck
make -s buildcheck
make -s settingscheck
make -s routecheck
make -s bridgecheck
make -s gamedrivecheck
make -s launchercheck
make -s seedcheck
- name: Run the Swift tests
run: make -s app-tests
- name: Package the app bundle
run: |
mkdir -p out/artifact
ditto -c -k --keepParent out/NotProton.app out/artifact/NotProton.zip
- name: Upload the app bundle
uses: actions/upload-artifact@v4
with:
name: NotProton
path: out/artifact