Mercurial > octave
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 |
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" |