-
Notifications
You must be signed in to change notification settings - Fork 435
149 lines (146 loc) · 4.13 KB
/
main.yml
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
name: CI
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
on:
push:
pull_request:
jobs:
msvc:
strategy:
fail-fast: true
matrix:
include: [
{ config: Debug, platform: x64, bindir: 'win64_vs2022' },
{ config: Release, platform: x64, bindir: 'win64_vs2022' },
]
name: msvc-${{ matrix.config }}-${{ matrix.platform }}
runs-on: windows-2022
steps:
- name: Checkout bx
uses: actions/checkout@v4
with:
repository: bkaradzic/bx
path: bx
- name: Prepare
uses: microsoft/setup-msbuild@v2
- name: Build
shell: cmd
run: |
cd bx
tools\bin\windows\genie.exe vs2022
msbuild ".build/projects/vs2022/bx.sln" /m /v:minimal /p:Configuration=${{ matrix.config }} /p:Platform=${{ matrix.platform }}
- name: Check
shell: cmd
run: |
cd bx
".build\${{ matrix.bindir }}\bin\bx.test${{ matrix.config }}.exe" -d yes
mingw:
strategy:
fail-fast: true
matrix:
include: [
{ msystem: MINGW64, project: 'mingw-gcc', bindir: 'win64_mingw-gcc' },
{ msystem: CLANG64, project: 'mingw-clang', bindir: 'win64_mingw-clang' },
]
name: mingw-${{ matrix.msystem }}
runs-on: windows-2022
steps:
- name: Checkout bx
uses: actions/checkout@v4
with:
repository: bkaradzic/bx
path: bx
- name: Prepare
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
update: true
install: make
pacboy: cc:p
- name: Build
shell: msys2 {0}
run: |
cd bx
tools/bin/windows/genie.exe --gcc=${{ matrix.project }} gmake
make -R -C .build/projects/gmake-${{ matrix.project }} config=release64 -j$(nproc) AR=ar CC=cc CXX=c++ MINGW=$MINGW_PREFIX
- name: Check
shell: cmd
run: |
cd bx
".build\${{ matrix.bindir }}\bin\bx.testRelease.exe" -d yes
linux:
strategy:
fail-fast: true
matrix:
include: [
{ config: debug, binsuffix: Debug },
{ config: release, binsuffix: Release },
]
name: linux-gcc-${{ matrix.config }}64
runs-on: ubuntu-24.04
steps:
- name: Checkout bx
uses: actions/checkout@v4
with:
repository: bkaradzic/bx
path: bx
- name: Build
run: |
cd bx
tools/bin/linux/genie --gcc=linux-gcc gmake
make -R -C .build/projects/gmake-linux-gcc config=${{ matrix.config }}64 -j$(nproc)
- name: Check
run: |
cd bx
".build/linux64_gcc/bin/bx.test${{ matrix.binsuffix}}" -d yes
osx:
strategy:
fail-fast: true
matrix:
include: [
{ config: debug, binsuffix: Debug },
{ config: release, binsuffix: Release },
]
name: osx-x64-${{ matrix.config }}
runs-on: macos-14
steps:
- name: Checkout bx
uses: actions/checkout@v4
with:
repository: bkaradzic/bx
path: bx
- name: Build
run: |
cd bx
tools/bin/darwin/genie --gcc=osx-x64 gmake
make -C .build/projects/gmake-osx-x64 config=${{ matrix.config }} -j$(sysctl -n hw.physicalcpu)
- name: Check
run: |
cd bx
".build/osx-x64/bin/bx.test${{ matrix.binsuffix}}" -d yes
emscripten:
strategy:
fail-fast: true
matrix:
include: [
{ config: debug, binsuffix: Debug },
{ config: release, binsuffix: Release },
]
name: wasm-${{ matrix.config }}
runs-on: ubuntu-24.04
steps:
- name: Checkout bx
uses: actions/checkout@v4
with:
repository: bkaradzic/bx
path: bx
- uses: mymindstorm/setup-emsdk@v14
- name: Build
run: |
cd bx
tools/bin/linux/genie --gcc=wasm gmake
make -C .build/projects/gmake-wasm config=${{ matrix.config }} -j$(nproc) EMSCRIPTEN=$EMSDK/upstream/emscripten
- name: Check
run: |
cd bx