-
Notifications
You must be signed in to change notification settings - Fork 125
220 lines (208 loc) · 4.24 KB
/
test.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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
name: ctex-kit test
on:
pull_request:
types:
# added "ready_for_review"
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request
[opened, ready_for_review, reopened, synchronize]
push:
schedule:
# at 12:00 UTC (20:00 CST/UTC +8) on Friday
- cron: "0 12 * * 5"
workflow_dispatch:
env:
TL_PACKAGES: |
adobemapping
amsfonts
amsmath
atbegshi
cjk
cjkutils
cm
ctablestack
currfile
dvipdfmx
ec
epstopdf-pkg
everysel
etex
etoolbox
euenc
fancyhdr
fandol
filehook
fontspec
graphics
graphics-cfg
graphics-def
iftex
l3build
l3experimental
l3kernel
l3packages
latex-bin
lm
lm-math
ltxcmds
lualatex-math
lualibs
luaotfload
luatex
luatex85
luatexbase
luatexja
metafont
mfware
## not needed since LaTeX 2021-06-01
# everysel
oberdiek
platex-tools
tex
tex-ini-files
tools
trimspaces
ucharcat
ulem
unicode-data
uplatex
varwidth
xcolor
xetex
xkeyval
xunicode
TL_EXTRA_PACKAGES: |
amscls
atveryend
auxhook
beamer
bibunits
bigfoot
bigintcalc
bitset
booktabs
caption
carlisle
chinese-jfm
cjkpunct
cleveref
context
enumitem
environ
eso-pic
etexcmds
everyhook
fontaxes
footmisc
geometry
gettitlestring
hycolor
hyperref
infwarerr
intcalc
ipaex
kastrup
koma-script
kvdefinekeys
kvoptions
kvsetkeys
letltxmacro
mweights
natbib
newtx
notoccite
ntheorem
pdfescape
pdflscape
pdfpages
pdftexcmds
pgf
pkuthss
psnfss
refcount
rerunfilecheck
sansmathaccent
setspace
soul
svn-prov
tex-gyre
tex-gyre-math
thuthesis
titlesec
tocloft
translator
ttfutils
txfonts
unicode-math
uniquecounter
url
xcjk2uni
xecjk
xits
xstring
zhmetrics
zhmetrics-uptex
zhnumber
NOTO_SANS_URL: https://github.com/notofonts/noto-cjk/releases/download/Sans2.004/03_NotoSansCJK-OTC.zip
NOTO_SERIF_URL: https://github.com/notofonts/noto-cjk/releases/download/Serif2.002/04_NotoSerifCJKOTC.zip
jobs:
test-ctex:
strategy:
matrix:
include:
- runs-on: ubuntu-latest
diffs: "ctex/build/**/*.diff"
font-dir: /usr/share/fonts/truetype
shell: bash
tl-pkgs: ""
- runs-on: macos-14
diffs: "ctex/build/**/*.diff"
font-dir: /Library/Fonts
shell: bash
tl-pkgs: ""
- runs-on: windows-latest
diffs: "ctex/build/**/*.fc"
font-dir: /c/Windows/Fonts
shell: C:\msys64\usr\bin\bash.exe -e {0}
# for `unzip` shipped with texlive
tl-pkgs: wintools.windows
name: on ${{ matrix.runs-on }}
runs-on: ${{ matrix.runs-on }}
defaults:
run:
shell: ${{ matrix.shell }}
steps:
- uses: actions/checkout@v4
- name: Install TeX Live
timeout-minutes: 30 # fail fast
uses: teatimeguest/setup-texlive-action@v3
with:
packages: |
${{ env.TL_PACKAGES }}
${{ env.TL_EXTRA_PACKAGES }}
${{ matrix.tl-pkgs }}
update-all-packages: true
- name: Install Noto fonts
run: |
curl -LO ${{ env.NOTO_SANS_URL }}
curl -LO ${{ env.NOTO_SERIF_URL }}
unzip -ojd ${{ matrix.font-dir }} "*OTC.zip" "*.ttc"
- name: Test ctex
id: test
working-directory: ./ctex
run: |
l3build check -q -H
l3build check -c test/config-cmap -q -H
l3build check -c test/config-contrib -q -H
- name: Get short commit SHA
# if-expression starting with "!" must be escaped,
# since "!" is reserved notation in YAML
if: ${{ !cancelled() && steps.test.outcome == 'failure' }}
run: |
echo "SHA_SHORT=$(git rev-parse --short=8 HEAD)" >> $GITHUB_ENV
- name: Upload test diffs
if: ${{ !cancelled() && steps.test.outcome == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: ctex-kit-diff-${{ env.SHA_SHORT }}
path: |
${{ matrix.diffs }}