annotate .github/workflows/make.yaml @ 32071:31a68f3ced07

maint: Merge stable to default.
author Markus Mützel <markus.muetzel@gmx.de>
date Tue, 02 May 2023 11:38:56 +0200
parents b16940405077 bc46d7c2768f
children 1ce9acf56351
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1 name: make
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2 on: [push]
29589
c3d463a3c472 GitHub-CI: Avoid running multiple actions at the same time
Markus Mützel <markus.muetzel@gmx.de>
parents: 29587
diff changeset
3 concurrency: ci-${{ github.ref }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
4
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5 jobs:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7 ubuntu:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8 runs-on: ${{ matrix.os }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
9
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10 strategy:
29792
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
11 # Allow other runners in the matrix to continue if some fail
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
12 fail-fast: false
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
13
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
14 matrix:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
15 # For available GitHub-hosted runners, see:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
16 # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
31214
19bd1953fc1d GitHub-CI: Remove ubuntu-18.04 runners from build matrix.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31156
diff changeset
17 os: [ubuntu-22.04, ubuntu-20.04]
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
18 compiler: [gcc, clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
19 include:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
20 - compiler: gcc
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
21 compiler-pkgs: "g++ gcc"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
22 cc: "gcc"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
23 cxx: "g++"
31985
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
24 extra-config-flags: ""
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
25 - compiler: clang
31985
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
26 compiler-pkgs: "clang libc++-dev libc++abi-dev"
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
27 cc: "clang"
31985
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
28 cxx: "clang++ -stdlib=libc++"
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
29 extra-config-flags: "--without-spqr --without-magick"
31336
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
30 # "ccache" on Ubuntu 20.04 doesn't compress the cache.
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
31 # Clang seems to generally require less cache size (smaller object files?).
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
32 - ccache-max: 1.2G
29584
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
33 - os: ubuntu-20.04
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
34 compiler: gcc
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
35 ccache-max: 6G
31336
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
36 - os: ubuntu-22.04
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
37 compiler: gcc
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
38 ccache-max: 1.2G
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
39 - os: ubuntu-20.04
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
40 compiler: clang
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
41 ccache-max: 3G
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
42 - os: ubuntu-22.04
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
43 compiler: clang
c94baad7be99 GitHub-CI (ubuntu): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31294
diff changeset
44 ccache-max: 400M
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
45
31985
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
46 name: ${{ matrix.os }} ${{ matrix.compiler }}
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
47
30482
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
48 env:
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
49 CC: ${{ matrix.cc }}
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
50 CXX: ${{ matrix.cxx }}
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
51
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
52 steps:
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
53 - name: checkout repository
30824
0ffe2f9a19f3 GitHub-CI: Use "actions/checkout@v3".
Markus Mützel <markus.muetzel@gmx.de>
parents: 30816
diff changeset
54 uses: actions/checkout@v3
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
55
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
56 - name: install dependencies
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
57 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
58 COMPILER_PKGS: ${{ matrix.compiler-pkgs }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
59 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
60 sudo apt -qq update
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
61 sudo apt install -y $COMPILER_PKGS autoconf automake bison ccache \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
62 dvipng epstool fig2dev flex gfortran gnuplot-x11 gperf gzip \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
63 icoutils libarpack2-dev libblas-dev libcurl4-gnutls-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
64 libfftw3-dev libfltk1.3-dev libfontconfig1-dev libfreetype6-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
65 libgl1-mesa-dev libgl2ps-dev libglpk-dev libgraphicsmagick++1-dev \
31796
8b869c5d6ce8 GitHub-CI: Update list of installed packages.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31755
diff changeset
66 libhdf5-dev liblapack-dev libosmesa6-dev libpcre2-dev \
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
67 libqhull-dev libqscintilla2-qt5-dev libqrupdate-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
68 libreadline-dev librsvg2-bin libsndfile1-dev libsuitesparse-dev \
29949
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29925
diff changeset
69 libsundials-dev libtool libxft-dev make openjdk-8-jdk \
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
70 perl portaudio19-dev pstoedit qtbase5-dev qttools5-dev \
29587
d10027532f0a GitHub-CI: Install dependency rapidjson.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29584
diff changeset
71 qttools5-dev-tools rapidjson-dev rsync tar texinfo \
d10027532f0a GitHub-CI: Install dependency rapidjson.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29584
diff changeset
72 texlive-latex-extra xvfb zlib1g-dev
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
73
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
74 - name: prepare ccache
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
75 # create key with human readable timestamp
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
76 # used in action/cache/restore and action/cache/save steps
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
77 id: ccache-prepare
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
78 run: |
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
79 echo "key=ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
80
30438
ad705550616c GitHub-CI: Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30366
diff changeset
81 - name: restore ccache
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
82 # setup the github cache used to maintain the ccache from one job to the next
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
83 uses: actions/cache/restore@v3
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
84 with:
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
85 path: ~/.ccache
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
86 key: ${{ steps.ccache-prepare.outputs.key }}
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
87 restore-keys: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
88 ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
31486
07abf0487c8f maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
89 ccache:${{ matrix.os }}:${{ matrix.compiler }}:refs/heads/default
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
90
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
91 - name: configure ccache
29584
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
92 env:
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
93 CCACHE_MAX: ${{ matrix.ccache-max }}
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
94 run: |
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
95 test -d ~/.ccache || mkdir ~/.ccache
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
96 echo "max_size = $CCACHE_MAX" >> ~/.ccache/ccache.conf
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
97 ccache -s
30482
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
98 echo "/usr/lib/ccache" >> $GITHUB_PATH
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
99
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
100 - name: bootstrap
30307
2f50556788ac GitHub-CI: Use gnulib mirror on GitHub when bootstrapping.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30306
diff changeset
101 run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
102
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
103 - name: configure
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
104 timeout-minutes: 30
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
105 run: |
30482
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
106 echo $PATH
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
107 echo which ccache
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
108 which ccache
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
109 which $CC
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
110 echo $CC --version
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
111 $CC --version
31985
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
112 which ${CXX% *}
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
113 echo ${CXX% *} --version
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
114 ${CXX% *} --version
30482
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
115 which gfortran
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
116 echo gfortran --version
ddd58087ca97 GitHub-CI: More standard way to use ccache on Ubuntu runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30480
diff changeset
117 gfortran --version
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
118 mkdir .build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
119 cd .build && ../configure \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
120 CPPFLAGS="-I/usr/include/hdf5/serial -I/usr/include/suitesparse" \
31985
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
121 LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial" \
2f21784af0b9 GitHub-CI: Switch clang runners on Ubuntu to use libc++ as the STL.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31839
diff changeset
122 ${{ matrix.extra-config-flags }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
123
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
124 - name: build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
125 # Parallel make seems to fail intermittently when creating the figures
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
126 # for the manual. The error message says it fails to connect to a
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
127 # display. Maybe an xvfb issue?
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
128 # Use single job make for now which seems to work more reliably.
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
129 run: XDG_RUNTIME_DIR=$RUNNER_TEMP xvfb-run -a make -C ./.build all V=1
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
130
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
131 - name: ccache status
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
132 run: ccache -s
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
133
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
134 - name: save ccache
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
135 # Save the cache after we are done (successfully) building
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
136 uses: actions/cache/save@v3
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
137 with:
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
138 path: ~/.ccache
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
139 key: ${{ steps.ccache-prepare.outputs.key }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
140
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
141 - name: check
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
142 timeout-minutes: 60
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
143 run: XDG_RUNTIME_DIR=$RUNNER_TEMP xvfb-run -a make -C ./.build check | tee ./test-suite.log
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
144
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
145 - name: display test log
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
146 continue-on-error: true
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
147 # Displaying the log shouldn't take long. Cancel the step if it does.
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
148 timeout-minutes: 5
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
149 run: cat ./.build/test/fntests.log
29792
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
150
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
151 - name: analyze test suite results
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
152 # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
153 run: |
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
154 [ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || exit 1
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
155 [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || exit 1
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
156 echo No unknown failing tests.
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
157
31321
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
158 - name: test history file creation
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
159 # see bug #62365
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
160 # Pipe to an interactive session to trigger appending the command to
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
161 # the history. This will trigger the creation of a history file.
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
162 run: |
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
163 echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
164 [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
165
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
166
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
167 macos:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
168 runs-on: ${{ matrix.os }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
169
32066
a46c30311908 GitHub-CI (macos): Drop macos-11 runner and add macos-13 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32024
diff changeset
170 name: ${{ matrix.os }}
a46c30311908 GitHub-CI (macos): Drop macos-11 runner and add macos-13 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32024
diff changeset
171
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
172 strategy:
30028
bd2744459de4 GitHub-CI (macos): Allow other runners in the matrix to continue if some fail.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30013
diff changeset
173 # Allow other runners in the matrix to continue if some fail
bd2744459de4 GitHub-CI (macos): Allow other runners in the matrix to continue if some fail.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30013
diff changeset
174 fail-fast: false
bd2744459de4 GitHub-CI (macos): Allow other runners in the matrix to continue if some fail.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30013
diff changeset
175
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
176 matrix:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
177 # For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
32066
a46c30311908 GitHub-CI (macos): Drop macos-11 runner and add macos-13 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32024
diff changeset
178 os: [macos-13, macos-12]
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
179 # Most (or all) homebrew packages are compiled with clang and link
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
180 # against libc++. So we also use clang to avoid issues with symbols
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
181 # that don't match.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
182 # compiler: [real-gcc, clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
183 compiler: [clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
184 include:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
185 # - compiler: real-gcc
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
186 # cc: "/usr/local/bin/gcc-10"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
187 # cxx: "/usr/local/bin/g++-10"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
188 # cppflags: "-I/usr/local/opt/hdf5/include -I/usr/local/opt/gl2ps/include -I/usr/local/opt/glpk/include -I/usr/local/opt/pcre/include -I/usr/local/opt/qscintilla2/include -I/usr/local/opt/suite-sparse/include -I/usr/local/opt/sundials/include"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
189 # ldflags: "-L/usr/local/opt/hdf5/lib -L/usr/local/opt/gl2ps/lib -L/usr/local/opt/glpk/lib -L/usr/local/opt/pcre/lib -L/usr/local/opt/qscintilla2/lib -L/usr/local/opt/suite-sparse/lib -L/usr/local/opt/sundials/lib"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
190 - compiler: clang
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
191 cc: "clang"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
192 cxx: "clang++"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
193
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
194 env:
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
195 CC: ${{ matrix.cc }}
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
196 CXX: ${{ matrix.cxx }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
197
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
198 steps:
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
199 - name: checkout repository
30824
0ffe2f9a19f3 GitHub-CI: Use "actions/checkout@v3".
Markus Mützel <markus.muetzel@gmx.de>
parents: 30816
diff changeset
200 uses: actions/checkout@v3
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
201
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
202 - name: install dependencies
29907
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
203 # This step sometimes takes long and still recovers. But sometimes it
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
204 # seems to hang indefinitely.
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
205 # Use a pretty long timeout (but still less than the default 6 hours).
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
206 timeout-minutes: 75
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
207
31458
386f2f8a54f0 GitHub-CI (macos): Work around conflict between pre-installed and Homebrew Python.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31429
diff changeset
208 # Homebrew's Python conflicts with the Python that comes pre-installed
386f2f8a54f0 GitHub-CI (macos): Work around conflict between pre-installed and Homebrew Python.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31429
diff changeset
209 # on the GitHub runners. Some of Octave's dependencies depend on
386f2f8a54f0 GitHub-CI (macos): Work around conflict between pre-installed and Homebrew Python.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31429
diff changeset
210 # different versions of Homebrew's Python. Enforce using the ones from
386f2f8a54f0 GitHub-CI (macos): Work around conflict between pre-installed and Homebrew Python.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31429
diff changeset
211 # Homebrew to avoid errors on updates.
386f2f8a54f0 GitHub-CI (macos): Work around conflict between pre-installed and Homebrew Python.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31429
diff changeset
212 # See: https://github.com/orgs/Homebrew/discussions/3928
386f2f8a54f0 GitHub-CI (macos): Work around conflict between pre-installed and Homebrew Python.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31429
diff changeset
213
31680
6429fec82881 GitHub-CI (macos): Overwrite the Python installation earlier on.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
214 # It looks like "gfortran" isn't working correctly unless "gcc" is
6429fec82881 GitHub-CI (macos): Overwrite the Python installation earlier on.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
215 # re-installed.
6429fec82881 GitHub-CI (macos): Overwrite the Python installation earlier on.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
216
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
217 # See also: https://formulae.brew.sh/formula/octave#default
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
218 # The packages are listed in (alphabetically sorted) blocks:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
219 # The first block is for "direct" dependencies.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
220 # The second block is for additional dependencies needed when building from a release tarball.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
221 # The third block is for additional dependencies needed when building from a repository checkout.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
222 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
223 brew update
31680
6429fec82881 GitHub-CI (macos): Overwrite the Python installation earlier on.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
224 brew install --overwrite python@3.10 python@3.11
29697
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
225 brew reinstall gcc
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
226 brew install arpack epstool fftw fig2dev fltk fontconfig freetype \
29697
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
227 ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 libsndfile \
31426
c7b2ad1e51f3 GitHub-CI: Install PCRE2 packages instead of PCRE (bug #61542).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31419
diff changeset
228 libtool openblas pcre2 portaudio pstoedit qhull qrupdate \
29587
d10027532f0a GitHub-CI: Install dependency rapidjson.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29584
diff changeset
229 qscintilla2 qt@5 rapidjson readline suite-sparse sundials texinfo \
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
230 ccache gnu-sed openjdk pkg-config \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
231 automake autoconf bison gettext icoutils librsvg mactex-no-gui
29697
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
232 eval "$(/usr/libexec/path_helper)"
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
233 echo "/Library/TeX/texbin" >> $GITHUB_PATH
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
234 echo "/usr/local/opt/qt@5/bin" >> $GITHUB_PATH
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
235 echo "/usr/local/opt/texinfo/bin" >> $GITHUB_PATH
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
236 echo "/usr/local/opt/bison/bin" >> $GITHUB_PATH
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
237 echo "/usr/local/opt/gnu-sed/libexec/gnubin" >> $GITHUB_PATH
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
238
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
239 - name: prepare ccache
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
240 # create key with human readable timestamp
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
241 # used in action/cache/restore and action/cache/save steps
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
242 id: ccache-prepare
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
243 run: |
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
244 echo "key=ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
245
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
246 - name: restore ccache
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
247 # setup the github cache used to maintain the ccache from one job to the next
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
248 uses: actions/cache/restore@v3
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
249 id: restore-ccache
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
250 with:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
251 path: /Users/runner/Library/Caches/ccache
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
252 key: ${{ steps.ccache-prepare.outputs.key }}
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
253 restore-keys: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
254 ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
31486
07abf0487c8f maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
255 ccache:${{ matrix.os }}:${{ matrix.compiler }}:refs/heads/default
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
256
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
257 - name: configure ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
258 # The cache doesn't seem to compress well on macOS. Is it already compressed?
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
259 # Limit the maximum size to avoid exceeding the total cache limits.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
260 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
261 test -d /Users/runner/Library/Preferences/ccache || mkdir /Users/runner/Library/Preferences/ccache
30438
ad705550616c GitHub-CI: Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30366
diff changeset
262 echo "max_size = 0.9G" >> /Users/runner/Library/Preferences/ccache/ccache.conf
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
263 ccache -s
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
264 echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
265
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
266 - name: bootstrap
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
267 run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
268
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
269 - name: configure
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
270 timeout-minutes: 30
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
271 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
272 MY_CPPFLAGS: ${{ matrix.cppflags }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
273 MY_LDFLAGS: ${{ matrix.ldflags }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
274 # This is a hodgepodge of configure flags put together from the
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
275 # buildbot rules:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
276 # https://hg.octave.org/octave-buildbot/file/tip/master.cfg#l543
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
277 # And the homebrew formula:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
278 # https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/octave.rb
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
279 # Amended with additional flags that seem to be needed.
29648
0230f7cf4044 GitHub-CI: Build with visibility flags on macOS (bug #59820).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29589
diff changeset
280 # Not all of those might be needed or be correct.
31737
bbc44e60120b GitHub-CI (macos): Enable C++14 with GNU extensions (bug #63633).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31704
diff changeset
281 # SUNDIALS >= 6.5.0 doesn't compile with the default flags determined
bbc44e60120b GitHub-CI (macos): Enable C++14 with GNU extensions (bug #63633).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31704
diff changeset
282 # by the configure script. Set CXX manually to enable building with it.
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
283 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
284 echo $PATH
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
285 echo which ccache
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
286 which ccache
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
287 which $CC
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
288 echo $CC --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
289 $CC --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
290 which $CXX
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
291 echo $CXX --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
292 $CXX --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
293 which gfortran
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
294 echo gfortran --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
295 gfortran --version
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
296 mkdir .build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
297 cd .build && ../configure \
31737
bbc44e60120b GitHub-CI (macos): Enable C++14 with GNU extensions (bug #63633).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31704
diff changeset
298 CXX="$CXX -std=gnu++14" \
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
299 F77="ccache gfortran" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
300 CPPFLAGS="-I/usr/local/opt/gettext/include -I/usr/local/opt/icu4c/include -I/usr/local/opt/qt@5/include -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include $MY_CPPFLAGS" \
30480
83dbee7c8f08 build: Use autoconf check for flags to activate C++11 features (bug #61642).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30438
diff changeset
301 CXXFLAGS="-O2 -g" \
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
302 LDFLAGS="-L/usr/local/lib -L/usr/local/opt/bison/lib -L/usr/local/opt/gettext/lib -L/usr/local/opt/icu4c/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/sqlite/lib $MY_LDFLAGS" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
303 PKG_CONFIG_PATH="/usr/local/opt/openblas/lib/pkgconfig:/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/qt@5/lib/pkgconfig" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
304 QCOLLECTIONGENERATOR="qhelpgenerator" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
305 --with-x=no \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
306 --with-blas="-L/usr/local/opt/openblas/lib -lopenblas" \
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
307 --with-java-homedir="/usr/local/opt/openjdk" \
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
308 --prefix="${HOME}/usr"
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
309
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
310 - name: build
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
311 run: make -C ./.build all -j3 V=1
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
312
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
313 - name: ccache status
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
314 run: ccache -s
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
315
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
316 - name: save ccache
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
317 # Save the cache after we are done (successfully) building
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
318 uses: actions/cache/save@v3
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
319 with:
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
320 path: /Users/runner/Library/Caches/ccache
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
321 key: ${{ steps.ccache-prepare.outputs.key }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
322
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
323 - name: check
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
324 # Continuing on error in this step means that jobs will be "green" even
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
325 # if the test suite crashes. But if we don't continue, we'll loose the
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
326 # ccache and other jobs will be cancelled, too.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
327 # It would be nice if we could mark the job as "yellow" (and continue)
30764
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
328 # in that case. The second best thing is to display a warning in the
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
329 # job summary (see below).
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
330 continue-on-error: true
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
331 timeout-minutes: 60
30013
2362fbd42c17 GitHub-CI: Add macOS 11 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29949
diff changeset
332 run: |
2362fbd42c17 GitHub-CI: Add macOS 11 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29949
diff changeset
333 echo 'makeinfo_program ("/usr/local/opt/texinfo/bin/makeinfo");' >> ./scripts/startup/site-rcfile
30764
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
334 make -C ./.build check | tee ./test-suite.log
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
335
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
336 - name: display test log
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
337 continue-on-error: true
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
338 # Displaying the log shouldn't take long. Cancel the step if it does.
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
339 timeout-minutes: 5
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
340 run: cat ./.build/test/fntests.log
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
341
30764
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
342 - name: analyze test suite results
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
343 # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
30975
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
344 run: |
32070
bc46d7c2768f GitHub-CI (macos): Fail job if test suite doesn't pass.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32066
diff changeset
345 [ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || exit 1
bc46d7c2768f GitHub-CI (macos): Fail job if test suite doesn't pass.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32066
diff changeset
346 [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || exit 1
30764
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
347 echo Finished analyzing test suite results.
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
348
31321
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
349 - name: test history file creation
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
350 # see bug #62365
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
351 # Pipe to an interactive session to trigger appending the command to
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
352 # the history. This will trigger the creation of a history file.
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
353 run: |
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
354 echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
355 [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
356
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
357
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
358 mingw:
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
359 runs-on: ${{ matrix.os }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
360
32030
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
361 name: mingw-w64 ${{ matrix.msystem }}
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
362
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
363 defaults:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
364 run:
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
365 # Use MSYS2 as default shell
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
366 shell: msys2 {0}
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
367
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
368 strategy:
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
369 # Allow other runners in the matrix to continue if some fail
29740
c3bab252f071 GitHub-CI: Timeout configure step on Windows after 30 minutes.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29726
diff changeset
370 fail-fast: false
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
371
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
372 matrix:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
373 # For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
30704
ec36fe975d2d GitHub-CI (windows): Track the "windows-latest" label.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30640
diff changeset
374 os: [windows-latest]
32030
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
375 msystem: [MINGW64, CLANG64]
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
376 include:
30975
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
377 - msystem: MINGW64
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
378 mingw-prefix: mingw64
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
379 target-prefix: mingw-w64-x86_64
30237
2b74543c85ea GitHub-CI: Don't use cross-compilers for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30229
diff changeset
380 cc: gcc
2b74543c85ea GitHub-CI: Don't use cross-compilers for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30229
diff changeset
381 cxx: g++
2b74543c85ea GitHub-CI: Don't use cross-compilers for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30229
diff changeset
382 f77: gfortran
32030
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
383 extra-config-flags: ""
32050
c00d842608f7 GitHub-CI (mingw): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32030
diff changeset
384 ccache-max: 0.9G
32030
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
385 - msystem: CLANG64
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
386 mingw-prefix: clang64
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
387 target-prefix: mingw-w64-clang-x86_64
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
388 cc: clang
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
389 # It looks like we and graphicsmagick++ aren't ready for C++17 yet.
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
390 cxx: "clang++ -std=gnu++14"
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
391 f77: flang
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
392 # Clang seems to require a different set of dllexport attributes than GCC.
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
393 # autoconf and libtool still need help to correctly invoke flang.
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
394 extra-config-flags:
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
395 --disable-lib-visibility-flags
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
396 --enable-fortran-calling-convention=gfortran
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
397 ac_cv_f77_compiler_gnu=yes
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
398 lt_cv_prog_gnu_ld=yes
32050
c00d842608f7 GitHub-CI (mingw): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32030
diff changeset
399 ccache-max: 400M
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
400
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
401 env:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
402 CHERE_INVOKING: 1
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
403 CC: ${{ matrix.cc }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
404 CXX: ${{ matrix.cxx }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
405 F77: ${{ matrix.f77 }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
406 # perl uses cmd shell by default
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
407 PERL5SHELL: bash -l -c
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
408
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
409 steps:
30317
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
410 - name: get CPU name
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
411 # The runners for the 32-bit target sometimes get stuck in configure
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
412 # when using the Fortran compiler.
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
413 # Does that error depend on the processor of the selected runner?
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
414 shell: pwsh
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
415 run : |
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
416 Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
417
30975
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
418 - name: install MSYS2 build environment
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
419 uses: msys2/setup-msys2@v2
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
420 with:
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
421 update: true
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
422
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
423 # Use pre-installed version to save disc space on partition with source.
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
424 # We need that space for building.
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
425 release: false
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
426
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
427 # The packages are listed in (alphabetically sorted) blocks:
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
428 # The first block is for mandatory dependencies.
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
429 # The second block is for optional dependencies needed when building from a release tarball.
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
430 # The third block is for additional dependencies needed when building from a repository checkout.
30640
d162766886ce GitHub-CI: Install autotools on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30614
diff changeset
431 # The fourth block is for additional run-time dependencies (to run test suite) that aren't needed to build.
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
432 install: >-
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
433 base-devel
30640
d162766886ce GitHub-CI: Install autotools on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30614
diff changeset
434 ${{ matrix.target-prefix }}-autotools
30783
a4dbec69e1b5 GitHub-CI (windows): Install less packages.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30764
diff changeset
435 ${{ matrix.target-prefix }}-cc
32030
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
436 ${{ matrix.target-prefix }}-fc
31704
f7a571c5698c GitHub-CI (mingw): Install gperf.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31681
diff changeset
437 ${{ matrix.target-prefix }}-gperf
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
438 ${{ matrix.target-prefix }}-openblas
31426
c7b2ad1e51f3 GitHub-CI: Install PCRE2 packages instead of PCRE (bug #61542).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31419
diff changeset
439 ${{ matrix.target-prefix }}-pcre2
29726
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
440
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
441 ${{ matrix.target-prefix }}-arpack
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
442 ${{ matrix.target-prefix }}-curl
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
443 ${{ matrix.target-prefix }}-fftw
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
444 ${{ matrix.target-prefix }}-fltk
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
445 ${{ matrix.target-prefix }}-gl2ps
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
446 ${{ matrix.target-prefix }}-glpk
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
447 ${{ matrix.target-prefix }}-ghostscript
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
448 ${{ matrix.target-prefix }}-gnuplot
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
449 ${{ matrix.target-prefix }}-graphicsmagick
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
450 ${{ matrix.target-prefix }}-hdf5
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
451 ${{ matrix.target-prefix }}-libsndfile
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
452 ${{ matrix.target-prefix }}-portaudio
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
453 ${{ matrix.target-prefix }}-qhull
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
454 ${{ matrix.target-prefix }}-qrupdate
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
455 ${{ matrix.target-prefix }}-qscintilla
30291
9dea84c8be9e GitHub-CI: Install less Qt packages on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30237
diff changeset
456 ${{ matrix.target-prefix }}-qt5-base
9dea84c8be9e GitHub-CI: Install less Qt packages on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30237
diff changeset
457 ${{ matrix.target-prefix }}-qt5-imageformats
9dea84c8be9e GitHub-CI: Install less Qt packages on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30237
diff changeset
458 ${{ matrix.target-prefix }}-qt5-svg
9dea84c8be9e GitHub-CI: Install less Qt packages on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30237
diff changeset
459 ${{ matrix.target-prefix }}-qt5-tools
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
460 ${{ matrix.target-prefix }}-rapidjson
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
461 ${{ matrix.target-prefix }}-suitesparse
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
462 ${{ matrix.target-prefix }}-sundials
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
463
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
464 git
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
465 ${{ matrix.target-prefix }}-ccache
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
466 ${{ matrix.target-prefix }}-icoutils
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
467 ${{ matrix.target-prefix }}-librsvg
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
468 texinfo
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
469
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
470 unzip
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
471 zip
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
472
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
473 msystem: ${{ matrix.msystem }}
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
474
30794
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
475 - name: install run-time dependency "mesa"
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
476 # The mesa3d OpenGL driver seems to be needed for correct off-screen
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
477 # rendering. But the version from MSYS2 currently crashes Octave on
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
478 # MINGW32. See: https://github.com/msys2/MINGW-packages/issues/10876
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
479 # Without it, `test getframe` "just" fails without crashing Octave.
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
480 # So, skip installation for MINGW32.
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
481 if: matrix.msystem != 'MINGW32'
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
482 env:
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
483 TARGET_PREFIX: ${{ matrix.target-prefix }}
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
484 run: pacman --noconfirm -S ${TARGET_PREFIX}-mesa
b39ecf7f45ce GitHub-CI (windows): Install mesa as a run-time dependency.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30783
diff changeset
485
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
486 - name: checkout repository
30824
0ffe2f9a19f3 GitHub-CI: Use "actions/checkout@v3".
Markus Mützel <markus.muetzel@gmx.de>
parents: 30816
diff changeset
487 uses: actions/checkout@v3
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
488
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
489 - name: prepare ccache
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
490 # create key with human readable timestamp
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
491 # used in action/cache/restore and action/cache/save steps
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
492 id: ccache-prepare
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
493 run: |
31339
0fe1cb1e2f12 GitHub-CI (windows): Cache location changed with newer ccache version.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31338
diff changeset
494 echo "ccachedir=$(cygpath -m $(ccache -k cache_dir))" >> $GITHUB_OUTPUT
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
495 echo "key=ccache:${{ matrix.os }}:${{ matrix.msystem }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
32024
e3793a404ea1 GitHub-CI (mingw): Add missing output for build artifact name.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31985
diff changeset
496 echo "timestamp=$(date +"%Y-%m-%d_%H-%M-%S")" >> $GITHUB_OUTPUT
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
497
30438
ad705550616c GitHub-CI: Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30366
diff changeset
498 - name: restore ccache
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
499 # Setup the github cache used to maintain the ccache from one job to the next
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
500 uses: actions/cache/restore@v3
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
501 with:
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
502 path: ${{ steps.ccache-prepare.outputs.ccachedir }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
503 key: ${{ steps.ccache-prepare.outputs.key }}
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
504 restore-keys: |
30975
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
505 ccache:${{ matrix.os }}:${{ matrix.msystem }}:${{ github.ref }}
31486
07abf0487c8f maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
506 ccache:${{ matrix.os }}:${{ matrix.msystem }}:refs/heads/default
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
507
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
508 - name: configure ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
509 # Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
510 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
511 which ccache
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
512 test -d ${{ steps.ccache-prepare.outputs.ccachedir }} || mkdir -p ${{ steps.ccache-prepare.outputs.ccachedir }}
32050
c00d842608f7 GitHub-CI (mingw): Reduce ccache size to approx. 2x the size after a clean run.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32030
diff changeset
513 echo "max_size = ${{ matrix.ccache-max }}" > ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
514 echo "compression = true" >> ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
31339
0fe1cb1e2f12 GitHub-CI (windows): Cache location changed with newer ccache version.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31338
diff changeset
515 ccache -p
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
516 ccache -s
29726
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
517 # create ccache helper script for Fortran compiler
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
518 echo -e '#!/bin/bash\nccache '$MINGW_PREFIX'/bin/'$F77' "$@"' > $MINGW_PREFIX/lib/ccache/bin/$F77
29721
24effbddcbe8 GitHub-CI: Don't use ccache for Fortran on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29718
diff changeset
519 # prepend path to ccache helper scripts to PATH
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
520 echo 'export PATH="$MINGW_PREFIX/lib/ccache/bin:$PATH"' >> ~/.bash_profile
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
521
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
522 - name: bootstrap
30307
2f50556788ac GitHub-CI: Use gnulib mirror on GitHub when bootstrapping.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30306
diff changeset
523 run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
524
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
525 - name: configure
29740
c3bab252f071 GitHub-CI: Timeout configure step on Windows after 30 minutes.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29726
diff changeset
526 # configure sometimes hangs while compiling 32bit Fortran.
c3bab252f071 GitHub-CI: Timeout configure step on Windows after 30 minutes.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29726
diff changeset
527 # It should take much less than 30 minutes. Cancel the step if it takes longer.
c3bab252f071 GitHub-CI: Timeout configure step on Windows after 30 minutes.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29726
diff changeset
528 timeout-minutes: 30
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
529 # FIXME: Fix building with Java support. Override JAVA_HOME for now.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
530 # FIXME: How do we get a working TeX environment in MSYS2? Disable building the documentation for now.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
531 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
532 which $CC
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
533 echo $CC --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
534 $CC --version
32030
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
535 which ${CXX% *}
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
536 echo ${CXX% *} --version
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
537 ${CXX% *} --version
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
538 which $F77
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
539 echo $F77 --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
540 $F77 --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
541 mkdir .build
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
542 cd .build && ../configure \
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
543 JAVA_HOME="" \
31839
f184279bd67f GitHub-CI: Don't use weak symbols on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31796
diff changeset
544 --disable-docs \
32030
45db7ac36ba5 GitHub-CI (mingw): Drop MINGW32 and add CLANG64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 32025
diff changeset
545 ${{ matrix.extra-config-flags }} \
31839
f184279bd67f GitHub-CI: Don't use weak symbols on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31796
diff changeset
546 gl_cv_have_weak=no
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
547
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
548 - name: build
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
549 # Spawning processes seems to have a big overhead on this platform. Use a somewhat larger number of parallel processes to compensate for that.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
550 run: |
29925
53de043ea532 GitHub-CI: Remove obsolete hack in MSYS2 rules for error fixed upstream.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29921
diff changeset
551 make -C ./.build all -j8 V=1
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
552
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
553 - name: ccache status
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
554 continue-on-error: true
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
555 run: ccache -s
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
556
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
557 - name: save ccache
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
558 # Save the cache after we are done (successfully) building
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
559 uses: actions/cache/save@v3
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
560 with:
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
561 path: ${{ steps.ccache-prepare.outputs.ccachedir }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
562 key: ${{ steps.ccache-prepare.outputs.key }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
563
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
564 - name: check
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
565 # Continuing on error in this step means that jobs will be "green" even
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
566 # if the test suite crashes. But if we don't continue, we'll loose the
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
567 # ccache and other jobs will be cancelled, too.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
568 # It would be nice if we could mark the job as "yellow" (and continue)
30764
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
569 # in that case. The second best thing is to display a warning in the
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
570 # job summary (see below).
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
571 continue-on-error: true
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
572 timeout-minutes: 60
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
573
30610
e9895f8335c5 GitHub-CI: Simplify running the test suite on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30482
diff changeset
574 # Perl scripts cannot be run as executables on Windows (no shebang mechanism).
e9895f8335c5 GitHub-CI: Simplify running the test suite on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30482
diff changeset
575 # We need to wrap them by calling the perl executable explicitly.
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
576
30829
df6668419bfa GitHub-CI (windows): Run test suite in build tree.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30824
diff changeset
577 # mkoctfile seems to have trouble when gcc is called via ccache. So,
df6668419bfa GitHub-CI (windows): Run test suite in build tree.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30824
diff changeset
578 # remove the directory with the ccache wrappers from PATH.
df6668419bfa GitHub-CI (windows): Run test suite in build tree.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30824
diff changeset
579
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
580 run: |
30975
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
581 echo "makeinfo_program (sprintf ('%s && cd %s && perl makeinfo', [s=nthargout(2, @system, 'cygpath -w /usr/bin')](1:2), strtrim (s)));" \
30829
df6668419bfa GitHub-CI (windows): Run test suite in build tree.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30824
diff changeset
582 >> ./scripts/startup/site-rcfile
df6668419bfa GitHub-CI (windows): Run test suite in build tree.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30824
diff changeset
583 export PATH=$(echo "$PATH" | sed -e "s|$MINGW_PREFIX/lib/ccache/bin:||g")
df6668419bfa GitHub-CI (windows): Run test suite in build tree.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30824
diff changeset
584 make -C ./.build check | tee ./test-suite.log
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
585
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
586 - name: display test log
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
587 continue-on-error: true
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
588 # Displaying the log shouldn't take long. Cancel the step if it does.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
589 timeout-minutes: 5
30829
df6668419bfa GitHub-CI (windows): Run test suite in build tree.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30824
diff changeset
590 run: cat ./.build/test/fntests.log
30764
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
591
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
592 - name: analyze test suite results
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
593 # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
30975
791bc376f979 GitHub-CI (windows): Clean-up job rule.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30837
diff changeset
594 run: |
30837
4d2da8a3dca6 Back out changeset: f5587d651bc7
Markus Mützel <markus.muetzel@gmx.de>
parents: 30829
diff changeset
595 [ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || echo "::warning::At least one test failed"
4d2da8a3dca6 Back out changeset: f5587d651bc7
Markus Mützel <markus.muetzel@gmx.de>
parents: 30829
diff changeset
596 [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || echo "::warning::At least one regression in test suite"
30764
81021f079387 GitHub-CI: Analyze test results for OS X and Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30704
diff changeset
597 echo Finished analyzing test suite results.
30977
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
598
31321
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
599 - name: test history file creation
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
600 # see bug #62365
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
601 # Pipe to an interactive session to trigger appending the command to
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
602 # the history. This will trigger the creation of a history file.
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
603 run: |
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
604 echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
605 [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
1d99e68c05c0 GitHub-CI: Add step to test creating a history file with nested directory (bug #62365).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31295
diff changeset
606
30977
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
607 - name: install and compress
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
608 if: matrix.msystem == 'MINGW64'
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
609 continue-on-error: true
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
610 run: |
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
611 echo "::group::Installing Octave"
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
612 mkdir -p /c/octave/pkg
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
613 make -C ./.build DESTDIR=/c/octave/pkg install
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
614 echo "::endgroup::"
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
615 echo "::group::Compressing Octave package"
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
616 cd /c/octave/pkg
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
617 tar -cvzf octave.tar.gz *
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
618 echo "::endgroup::"
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
619
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
620 - name: upload build artifact
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
621 if: matrix.msystem == 'MINGW64'
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
622 continue-on-error: true
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
623 uses: actions/upload-artifact@v3
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
624 with:
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
625 name: ${{ matrix.target-prefix }}-octave-${{ steps.ccache-prepare.outputs.timestamp }}
30977
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
626 path: C:\octave\pkg\octave.tar.gz
f02f46360611 GitHub-CI (windows): Package build artifact for MINGW64.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30976
diff changeset
627 retention-days: 7
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
628
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
629
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
630 cygwin:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
631 runs-on: ${{ matrix.os }}
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
632
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
633 defaults:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
634 run:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
635 # Use Cygwin bash as default shell
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
636 shell: C:\cygwin\bin\bash.exe --login -eo pipefail -o igncr '{0}'
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
637
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
638 strategy:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
639 # Allow other runners in the matrix to continue if some fail
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
640 fail-fast: false
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
641
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
642 matrix:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
643 # For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
644 os: [windows-latest]
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
645
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
646 env:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
647 CHERE_INVOKING: "1"
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
648 CC: gcc
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
649 CXX: g++
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
650 F77: gfortran
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
651 # ccache 3.1 doesn't read configuration files
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
652 CCACHE_COMPRESS: "1"
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
653
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
654 steps:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
655 - name: get CPU name
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
656 shell: pwsh
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
657 run : |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
658 Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
659
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
660 - name: checkout repository
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
661 # This must be done before installing Cygwin because their git is
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
662 # incompatible with this action.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
663 uses: actions/checkout@v3
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
664
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
665 - name: install Cygwin build environment
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
666 uses: cygwin/cygwin-install-action@v2
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
667 with:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
668 # The packages are listed in (alphabetically sorted) blocks:
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
669 # The first block is for mandatory dependencies.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
670 # The second block is for optional dependencies needed when building from a release tarball.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
671 # The third block is for additional dependencies needed when building from a repository checkout.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
672 # The fourth block is for additional run-time dependencies (to run test suite) that aren't needed to build.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
673
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
674 # FIXME: libklu-devel should depend on libbtf-devel. Install it manually even if Octave doesn't explicitly use it.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
675 packages: >-
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
676 autoconf
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
677 automake
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
678 make
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
679 gcc-g++
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
680 gcc-fortran
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
681 bison
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
682 dash
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
683 flex
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
684 gperf
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
685 libtool
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
686 liblapack-devel
31426
c7b2ad1e51f3 GitHub-CI: Install PCRE2 packages instead of PCRE (bug #61542).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31419
diff changeset
687 libpcre2-devel
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
688 libreadline-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
689
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
690 ghostscript
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
691 gnuplot-base
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
692 libamd-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
693 libarpack-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
694 libbtf-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
695 libbz2-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
696 libcamd-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
697 libccolamd-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
698 libcholmod-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
699 libcolamd-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
700 libcurl-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
701 libcxsparse-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
702 libfftw3-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
703 libfltk-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
704 libfontconfig-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
705 libfreetype-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
706 libGL-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
707 libgl2ps-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
708 libglpk-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
709 libGLU-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
710 libgomp1
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
711 libGraphicsMagick-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
712 libhdf5-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
713 libiconv-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
714 libklu-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
715 libportaudio-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
716 libqhull-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
717 libqrupdate-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
718 libqscintilla2_qt5-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
719 libQt5Core-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
720 libQt5Gui-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
721 libQt5Help-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
722 libsndfile-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
723 libsuitesparseconfig-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
724 libsundials-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
725 libspqr-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
726 libumfpack-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
727 qt5-doc-tools
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
728 rapidjson-devel
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
729
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
730 ccache
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
731 git
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
732 icoutils
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
733 rsvg
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
734 texinfo
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
735
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
736 unzip
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
737 zip
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
738
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
739 - name: prepare ccache
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
740 # create key with human readable timestamp
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
741 # used in action/cache/restore and action/cache/save steps
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
742 id: ccache-prepare
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
743 run: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
744 echo "ccachedir=$(cygpath -m ~/.ccache)" >> $GITHUB_OUTPUT
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
745 echo "key=ccache:${{ matrix.os }}:cygwin:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
746
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
747 - name: restore ccache
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
748 # Setup a github cache used to maintain the ccache from one run to the next
31755
cf0b1426539e GitHub-CI (cygwin): Revert to cache action version 3.2.2.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31737
diff changeset
749 uses: actions/cache/restore@v3.2.2
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
750 with:
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
751 path: ${{ steps.ccache-prepare.outputs.ccachedir }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
752 key: ${{ steps.ccache-prepare.outputs.key }}
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
753 restore-keys: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
754 ccache:${{ matrix.os }}:cygwin:${{ github.ref }}
31486
07abf0487c8f maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31485
diff changeset
755 ccache:${{ matrix.os }}:cygwin:refs/heads/default
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
756
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
757 - name: configure ccache
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
758 run: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
759 # work around issue with ccache calling itself recursively
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
760 [ -f /usr/bin/ccache.exe ] && mv /usr/bin/ccache.exe /usr/bin/ccache
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
761 which ccache
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
762 ccache -V
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
763 # ccache 3.1 doesn't read configuration files
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
764 # test -d ${{ steps.ccache-prepare.outputs.ccachedir }} || mkdir -p ${{ steps.ccache-prepare.outputs.ccachedir }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
765 # echo "max_size = 0.9G" > ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
766 # echo "compression = true" >> ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
767 # limit maximum cache size to avoid exceeding the total disk or cache quota
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
768 ccache -M 0.9G
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
769 ccache -s
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
770 # create ccache symlinks for all compilers
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
771 test -d /usr/lib/ccache/bin || mkdir -p /usr/lib/ccache/bin
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
772 ln -s /usr/bin/ccache /usr/lib/ccache/bin/${CC}.exe
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
773 ln -s /usr/bin/ccache /usr/lib/ccache/bin/${CXX}.exe
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
774 ln -s /usr/bin/ccache /usr/lib/ccache/bin/${F77}.exe
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
775 # prepend path to ccache symlinks to PATH
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
776 echo 'export PATH="/usr/lib/ccache/bin:$PATH"' >> ~/.bash_profile
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
777
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
778 - name: bootstrap
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
779 run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
780
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
781 - name: configure
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
782 # FIXME: Fix building with Java support. Override JAVA_HOME for now.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
783 # FIXME: How do we get a working TeX environment in Cygwin? Disable building the documentation for now.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
784 run: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
785 which $CC
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
786 echo $CC --version
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
787 $CC --version
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
788 which $CXX
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
789 echo $CXX --version
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
790 $CXX --version
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
791 which $F77
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
792 echo $F77 --version
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
793 $F77 --version
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
794 mkdir .build
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
795 cd .build && ../configure \
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
796 --libexecdir=/usr/lib \
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
797 --enable-shared \
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
798 --disable-java \
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
799 --disable-docs \
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
800 JAVA_HOME="" \
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
801 EGREP="grep -E" \
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
802 FLIBS="-lgfortran -lquadmath"
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
803
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
804 - name: build
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
805 # Spawning processes seems to have a big overhead on this platform. Use a somewhat larger number of parallel processes to compensate for that.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
806 run: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
807 EGREP="grep -E" make -C ./.build all -j8 V=1
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
808
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
809 - name: ccache status
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
810 continue-on-error: true
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
811 run: ccache -s
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
812
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
813 - name: save ccache
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
814 # Save the cache after we are done (successfully) building
31755
cf0b1426539e GitHub-CI (cygwin): Revert to cache action version 3.2.2.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31737
diff changeset
815 uses: actions/cache/save@v3.2.2
31681
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
816 with:
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
817 path: ${{ steps.ccache-prepare.outputs.ccachedir }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
818 key: ${{ steps.ccache-prepare.outputs.key }}
abf3fb221090 GitHub-CI: Use explicit steps for restoring and saving the ccache.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31680
diff changeset
819
31335
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
820 - name: check
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
821 # Continuing on error in this step means that jobs will be "green" even
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
822 # if the test suite crashes. But if we don't continue, we'll loose the
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
823 # ccache.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
824 # It would be nice if we could mark the job as "yellow" (and continue)
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
825 # in that case. The second best thing is to display a warning in the
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
826 # job summary (see below).
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
827 continue-on-error: true
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
828 timeout-minutes: 60
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
829
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
830 # mkoctfile seems to have trouble when gcc is called via ccache. So,
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
831 # remove the directory with the ccache wrappers from PATH.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
832
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
833 run: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
834 export PATH=$(echo "$PATH" | sed -e "s|/usr/lib/ccache/bin:||g")
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
835 EGREP="grep -E" make -C ./.build check | tee ./test-suite.log
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
836
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
837 - name: display test log
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
838 continue-on-error: true
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
839 # Displaying the log shouldn't take long. Cancel the step if it does.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
840 timeout-minutes: 5
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
841 run: cat ./.build/test/fntests.log
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
842
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
843 - name: analyze test suite results
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
844 # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
845 run: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
846 [ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || echo "::warning::At least one test failed"
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
847 [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || echo "::warning::At least one regression in test suite"
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
848 echo Finished analyzing test suite results.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
849
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
850 - name: test history file creation
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
851 # see bug #62365
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
852 # Pipe to an interactive session to trigger appending the command to
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
853 # the history. This will trigger the creation of a history file.
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
854 run: |
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
855 echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
f51d3e1da961 GitHub-CI (cygwin): Add rules for runner that targets Cygwin.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31327
diff changeset
856 [ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"