-
Notifications
You must be signed in to change notification settings - Fork 10
221 lines (215 loc) · 6.96 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
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
221
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push, or for pull requests against master
push:
paths-ignore:
- NEWS
pull_request:
branches: [ master ]
paths-ignore:
- NEWS
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
linux:
runs-on: 'ubuntu-20.04'
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
show-progress: false
- name: Install CCache
uses: hendrikmuhs/ccache-action@v1
with:
key: linux
- name: Install package dependencies
run: |
sudo apt-get update
sudo apt-get install \
gettext \
libwxgtk3.0-gtk3-dev \
libavcodec-dev \
libavformat-dev \
libproj-dev \
libswscale-dev \
mesa-common-dev \
libglu1-mesa-dev \
libx11-dev \
libxext-dev \
ghostscript \
netpbm \
x11proto-core-dev \
liblocale-po-perl \
unifont \
docbook \
docbook-utils \
w3m
- name: bootstrap source tree
run: |
autoreconf -fiv
git checkout INSTALL
- name: configure
run: ./configure CC='ccache gcc' CXX='ccache g++'
- name: make
run: make -j2
- name: Run tests
run: make check VERBOSE=1
- name: Check generated files are in .gitignore
# grep '^' passes through all input while giving a non-zero exit status
# if that input is empty.
run: |
printf '%s\n' .ccache > ".git/info/exclude"
git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
valgrind:
runs-on: 'ubuntu-20.04'
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
show-progress: false
- name: Install CCache
uses: hendrikmuhs/ccache-action@v1
with:
key: valgrind
- name: Install package dependencies
run: |
sudo apt-get update
sudo apt-get install \
gettext \
libwxgtk3.0-gtk3-dev \
libavcodec-dev \
libavformat-dev \
libproj-dev \
libswscale-dev \
mesa-common-dev \
libglu1-mesa-dev \
libx11-dev \
libxext-dev \
ghostscript \
netpbm \
x11proto-core-dev \
liblocale-po-perl \
unifont \
docbook \
docbook-utils \
w3m
sudo apt-get install valgrind
- name: bootstrap source tree
run: |
autoreconf -fiv
git checkout INSTALL
- name: configure
run: ./configure CC='ccache gcc' CXX='ccache g++'
- name: make
run: make -j2
- name: Run tests
run: VALGRIND=valgrind make check VERBOSE=1
- name: Check generated files are in .gitignore
# grep '^' passes through all input while giving a non-zero exit status
# if that input is empty.
run: |
printf '%s\n' .ccache > ".git/info/exclude"
git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
linux-latest:
runs-on: 'ubuntu-latest'
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
show-progress: false
- name: Install CCache
uses: hendrikmuhs/ccache-action@v1
with:
key: linux-latest
- name: Install package dependencies
run: |
more /etc/apt/sources.list /etc/apt/sources.list.d/*|cat
sudo apt-get update
sudo apt-get purge mysql-client mysql-server
sudo apt-get dist-upgrade
sudo apt-get install update-manager libio-pty-perl
# `do-release-upgrade` fails (trying to run `screen` it seems) if stdin
# isn't a tty so fake one for it using the Perl IO::Pty module.
perl -ne '/use blib|clone_winsize_from/ or print' /usr/share/doc/libio-pty-perl/examples/try > $HOME/try
# Run in home directory so logs, etc don't end up in source tree.
cd "$HOME" && perl ./try sudo do-release-upgrade -d --mode=server
sudo apt-get install \
gettext \
libwxgtk3.0-gtk3-dev \
libavcodec-dev \
libavformat-dev \
libproj-dev \
libswscale-dev \
mesa-common-dev \
libglu1-mesa-dev \
libx11-dev \
libxext-dev \
ghostscript \
netpbm \
x11proto-core-dev \
liblocale-po-perl \
unifont \
docbook \
docbook-utils \
w3m
- name: bootstrap source tree
run: |
autoreconf -fiv
git checkout INSTALL
- name: configure
run: ./configure CC='ccache gcc' CXX='ccache g++'
- name: make
run: make -j2
- name: Run tests
run: make check VERBOSE=1
- name: Check generated files are in .gitignore
# grep '^' passes through all input while giving a non-zero exit status
# if that input is empty.
run: |
printf '%s\n' .ccache > ".git/info/exclude"
git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
macos:
runs-on: 'macos-latest'
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
show-progress: false
- name: Install CCache
uses: hendrikmuhs/ccache-action@v1
with:
key: macos
- name: Install package dependencies
run: |
brew update
brew install \
automake \
ffmpeg \
gettext \
gnu-tar \
netpbm \
proj \
wxwidgets
brew link --force gettext
cpan -T -i local::lib < /dev/null
cpan -I -T -i Locale::PO < /dev/null
- name: bootstrap source tree
run: |
autoreconf -fiv
git checkout INSTALL
V=`sed -e 's/^AC_INIT[^,]*, *\[\([^]]*\)\].*/\1/p;d' configure.ac` ; curl https://survex.com/software/$V/survex-$V.tar.gz | gtar --strip-components=1 --skip-old-files --wildcards -zxf - '*/lib' '*/doc'; ls -lrt lib ; touch lib/unifont.pixelfont lib/preload_font.h; echo ; ls -lrt doc; touch doc/*.1 doc/manual.txt doc/manual.pdf doc/manual/stampfile
- name: configure
run: ./configure CC='ccache gcc' CXX='ccache g++'
- name: make
run: |
eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"
make -j3
- name: Run tests
run: make check VERBOSE=1
- name: Check generated files are in .gitignore
# grep '^' passes through all input while giving a non-zero exit status
# if that input is empty.
run: |
printf '%s\n' .ccache > ".git/info/exclude"
git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true