-
Notifications
You must be signed in to change notification settings - Fork 738
150 lines (143 loc) · 4.36 KB
/
ci.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
150
# for github runner images, see: https://github.com/actions/runner-images?tab=readme-ov-file#available-images
name: interpret-CI
on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: "0 12 * * *"
env:
python_bld_ver: 3.9
ubuntu_bld: ubuntu-20.04
mac_bld: macOS-13
windows_bld: windows-2022
ubuntu_test: ubuntu-latest
mac_test: macOS-latest
windows_test: windows-latest
jobs:
bld:
strategy:
matrix:
include:
- name: linux_release_64
image: ubuntu-20.04
options: "-release_64"
asm: "-asm"
artifact_name: "libebm_ubuntu_release_64"
- name: linux_debug_64
image: ubuntu-20.04
options: "-debug_64"
asm: ""
artifact_name: "libebm_ubuntu_debug_64"
- name: mac_release_64
image: macos-13 # macos-13 is an intel based mac
options: "-release_64"
asm: "-asm"
artifact_name: "libebm_mac_release_64"
- name: mac_debug_64
image: macos-13 # macos-13 is an intel based mac
options: "-debug_64"
asm: ""
artifact_name: "libebm_mac_debug_64"
- name: mac_release_arm
image: macos-14 # macos-14 is an ARM based mac
options: "-release_arm"
asm: "-asm"
artifact_name: "libebm_mac_release_arm"
- name: mac_debug_arm
image: macos-14 # macos-14 is an ARM based mac
options: "-debug_arm"
asm: ""
artifact_name: "libebm_mac_debug_arm"
- name: win_release_64
image: windows-2022
options: "-release_64"
asm: ""
artifact_name: "libebm_win_release_64"
- name: win_debug_64
image: windows-2022
options: "-debug_64"
asm: ""
artifact_name: "libebm_win_debug_64"
runs-on: ${{ matrix.image }}
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Build on Windows
if: startsWith(matrix.image, 'windows')
run: |
$env:PATH += ';C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin'
.\build.bat ${{ matrix.options }} ${{ matrix.asm }}
- name: Build on Linux
if: startsWith(matrix.image, 'ubuntu')
run: |
sudo apt --yes update
sudo apt --yes install nvidia-cuda-toolkit
/bin/sh ./build.sh ${{ matrix.options }} ${{ matrix.asm }}
- name: Build on macOS
if: startsWith(matrix.image, 'macos')
run: |
/bin/sh ./build.sh ${{ matrix.options }} ${{ matrix.asm }}
- name: Publish shared library
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact_name }}
path: bld/lib
- name: Publish assembly
if: ${{ matrix.asm != '' }}
uses: actions/upload-artifact@v4
with:
name: asm-${{ matrix.artifact_name }}
path: bld/asm/
vis:
runs-on: ${{ env.ubuntu_bld }}
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Build vis
run: |
cd shared/vis
npm install
npm run build-prod
- name: Publish interpret-inline.js library
uses: actions/upload-artifact@v2
with:
name: vis
path: shared/vis/dist
npm:
runs-on: ${{ env.ubuntu_bld }}
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Build npm package
run: |
cd shared/vis
npm install
npm run build-prod
npm pack
mkdir pkg
cp *.tgz pkg/
- name: Publish npm package
uses: actions/upload-artifact@v2
with:
name: npm
path: shared/vis/pkg
R:
runs-on: ${{ env.ubuntu_bld }}
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Build R package
run: |
cd R
sudo apt --yes update
sudo apt --yes install texlive-latex-base texlive-fonts-extra
Rscript build.R
- name: Display errors
if: failure()
run: cat bld/tmp/R/interpret.Rcheck/00install.out
- name: Publish R package
uses: actions/upload-artifact@v2
with:
name: R
path: bld/R