3 # Controls when the workflow will run
5 # Triggers the workflow on push, or for pull requests against master
14 # Allows you to run this workflow manually from the Actions tab
19 runs-on: 'ubuntu-20.04'
21 - name: Check out repository code
22 uses: actions/checkout@v4
25 - name: Install CCache
26 uses: hendrikmuhs/ccache-action@v1
28 key: ${{ github.job }}
29 - name: Install package dependencies
32 sudo apt-get install \
34 libwxgtk3.0-gtk3-dev \
51 - name: bootstrap source tree
56 run: ./configure CC='ccache gcc' CXX='ccache g++'
60 run: make check VERBOSE=1
61 - name: Check generated files are in .gitignore
62 # grep '^' passes through all input while giving a non-zero exit status
63 # if that input is empty.
65 printf '%s\n' .ccache > ".git/info/exclude"
66 git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
69 runs-on: 'ubuntu-20.04'
71 - name: Check out repository code
72 uses: actions/checkout@v4
75 - name: Install CCache
76 uses: hendrikmuhs/ccache-action@v1
78 key: ${{ github.job }}
79 - name: Install package dependencies
82 sudo apt-get install \
84 libwxgtk3.0-gtk3-dev \
101 sudo apt-get install valgrind
102 - name: bootstrap source tree
107 run: ./configure CC='ccache gcc' CXX='ccache g++'
111 run: VALGRIND=valgrind make check VERBOSE=1
112 - name: Check generated files are in .gitignore
113 # grep '^' passes through all input while giving a non-zero exit status
114 # if that input is empty.
116 printf '%s\n' .ccache > ".git/info/exclude"
117 git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
120 runs-on: 'ubuntu-latest'
122 - name: Check out repository code
123 uses: actions/checkout@v4
126 - name: Install CCache
127 uses: hendrikmuhs/ccache-action@v1
129 key: ${{ github.job }}
130 - name: Install package dependencies
132 more /etc/apt/sources.list /etc/apt/sources.list.d/*|cat
134 sudo apt-get purge mysql-client mysql-server
135 sudo apt-get dist-upgrade
136 sudo apt-get install update-manager libio-pty-perl
137 # `do-release-upgrade` fails (trying to run `screen` it seems) if stdin
138 # isn't a tty so fake one for it using the Perl IO::Pty module.
139 perl -ne '/use blib|clone_winsize_from/ or print' /usr/share/doc/libio-pty-perl/examples/try > $HOME/try
140 # Run in home directory so logs, etc don't end up in source tree.
141 cd "$HOME" && perl ./try sudo do-release-upgrade -d --mode=server
142 sudo apt-get install \
144 libwxgtk3.0-gtk3-dev \
161 - name: bootstrap source tree
166 run: ./configure CC='ccache gcc' CXX='ccache g++'
170 run: make check VERBOSE=1
171 - name: Check generated files are in .gitignore
172 # grep '^' passes through all input while giving a non-zero exit status
173 # if that input is empty.
175 printf '%s\n' .ccache > ".git/info/exclude"
176 git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
179 runs-on: 'macos-latest'
181 - name: Check out repository code
182 uses: actions/checkout@v4
185 - name: Install CCache
186 uses: hendrikmuhs/ccache-action@v1
188 key: ${{ github.job }}
189 - name: Install package dependencies
191 # Workaround apparent homebrew bug 2024-03-05
192 rm -f /usr/local/bin/2to3-3.* /usr/local/bin/idle3.* /usr/local/bin/pydoc3.* /usr/local/bin/python3.* /usr/local/bin/python3.*-config
193 rm -f /usr/local/bin/2to3 /usr/local/bin/idle3 /usr/local/bin/pydoc3 /usr/local/bin/python3 /usr/local/bin/python3-config
203 brew link --force gettext
204 cpan -T -i local::lib < /dev/null
205 cpan -I -T -i Locale::PO < /dev/null
206 - name: bootstrap source tree
210 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
212 run: ./configure CC='ccache gcc' CXX='ccache g++'
215 eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"
218 run: make check VERBOSE=1
219 - name: Check generated files are in .gitignore
220 # grep '^' passes through all input while giving a non-zero exit status
221 # if that input is empty.
223 printf '%s\n' .ccache > ".git/info/exclude"
224 git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true