annotate .github/workflows/make.yaml @ 30366:aedfb5b870ad stable

GitHub-CI: Overhaul environment variable usage on macOS. * .github/workflows/make.yaml (macos): Use more standardized way of setting environment variables for the runners.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 26 Nov 2021 20:50:42 +0100
parents 7fc817342393
children ad705550616c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1 name: make
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2 on: [push]
29589
c3d463a3c472 GitHub-CI: Avoid running multiple actions at the same time
Markus Mützel <markus.muetzel@gmx.de>
parents: 29587
diff changeset
3 concurrency: ci-${{ github.ref }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
4
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5 jobs:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7 ubuntu:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8 runs-on: ${{ matrix.os }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
9
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10 strategy:
29792
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
11 # Allow other runners in the matrix to continue if some fail
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
12 fail-fast: false
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
13
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
14 matrix:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
15 # For available GitHub-hosted runners, see:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
16 # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
17 os: [ubuntu-20.04, ubuntu-18.04]
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++"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
24 - compiler: clang
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
25 compiler-pkgs: "clang"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
26 cc: "clang"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
27 cxx: "clang++"
29584
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
28 # "ccache" on Ubuntu 20.04 with gcc seems to require much more cache
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
29 # storage than on the other runners to work effectively.
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
30 - ccache-max: 3G
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
31 - 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
32 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
33 ccache-max: 6G
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
34
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
35 steps:
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
36 - name: checkout repository
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
37 uses: actions/checkout@v2
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
38
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
39 - name: install dependencies
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
40 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
41 COMPILER_PKGS: ${{ matrix.compiler-pkgs }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
42 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
43 sudo apt -qq update
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
44 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
45 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
46 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
47 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
48 libgl1-mesa-dev libgl2ps-dev libglpk-dev libgraphicsmagick++1-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
49 libhdf5-dev liblapack-dev libosmesa6-dev libpcre3-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
50 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
51 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
52 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
53 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
54 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
55 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
56
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
57 - name: prepare ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
58 # create human readable timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
59 id: ccache_cache_timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
60 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
61 echo "::set-output name=TIMESTAMP::$(date +"%Y-%m-%d_%H-%M-%S")"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
62
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
63 - name: setup ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
64 # setup the github cache used to maintain the ccache from one job to the next
29792
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
65 # uses: actions/cache@v2
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
66 # The original action doesn't upload on error. Use this fork instead.
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
67 # FIXME: Consider reverting to the original action when it allows uploading on error.
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
68 # See: https://github.com/actions/cache/issues/92
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
69 uses: pat-s/always-upload-cache@v2
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
70 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
71 path: ~/.ccache
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
72 key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
73 restore-keys: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
74 ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
75 ccache:${{ matrix.os }}:${{ matrix.compiler }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
76
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
77 - 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
78 env:
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
79 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
80 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
81 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
82 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
83 ccache -s
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
84
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
85 - name: bootstrap
30307
2f50556788ac GitHub-CI: Use gnulib mirror on GitHub when bootstrapping.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30306
diff changeset
86 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
87
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
88 - name: configure
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
89 timeout-minutes: 30
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
90 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
91 MY_CC: ${{ matrix.cc }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
92 MY_CXX: ${{ matrix.cxx }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
93 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
94 echo $MY_CC --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
95 $MY_CC --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
96 echo $MY_CXX --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
97 $MY_CXX --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
98 mkdir .build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
99 cd .build && ../configure \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
100 CC="ccache $MY_CC" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
101 CXX="ccache $MY_CXX" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
102 F77="ccache gfortran" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
103 CPPFLAGS="-I/usr/include/hdf5/serial -I/usr/include/suitesparse" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
104 LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
105
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
106 - name: build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
107 # 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
108 # 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
109 # display. Maybe an xvfb issue?
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
110 # 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
111 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
112
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
113 - name: ccache status
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
114 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
115
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
116 - name: check
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
117 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
118 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
119
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
120 - name: display test log
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
121 continue-on-error: true
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
122 # 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
123 timeout-minutes: 5
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
124 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
125
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
126 - 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
127 # 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
128 run: |
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
129 [ -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
130 [ -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
131 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
132
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
133
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
134 macos:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
135 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
136
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
137 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
138 # 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
139 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
140
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
141 matrix:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
142 # For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
30013
2362fbd42c17 GitHub-CI: Add macOS 11 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29949
diff changeset
143 os: [macos-10.15, macos-11]
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
144 # 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
145 # 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
146 # that don't match.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
147 # compiler: [real-gcc, clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
148 compiler: [clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
149 include:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
150 # - compiler: real-gcc
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
151 # 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
152 # 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
153 # 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
154 # 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
155 - compiler: clang
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
156 cc: "clang"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
157 cxx: "clang++"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
158
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
159 env:
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
160 CC: ${{ matrix.cc }}
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
161 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
162
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
163 steps:
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
164 - name: checkout repository
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
165 uses: actions/checkout@v2
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 - 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
168 # 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
169 # 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
170 # 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
171 timeout-minutes: 75
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
172
29697
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
173 # It looks like "gfortran" isn't working correctly unless "gcc" is
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
174 # re-installed.
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
175
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
176 # 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
177 # 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
178 # 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
179 # 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
180 # 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
181 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
182 brew update
29697
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
183 brew reinstall gcc
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
184 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
185 ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 libsndfile \
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
186 libtool openblas pcre portaudio pstoedit qhull qrupdate \
29587
d10027532f0a GitHub-CI: Install dependency rapidjson.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29584
diff changeset
187 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
188 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
189 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
190 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
191 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
192 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
193 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
194 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
195 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
196
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
197 - name: prepare ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
198 # create human readable timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
199 id: ccache_cache_timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
200 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
201 echo "::set-output name=TIMESTAMP::$(date +"%Y-%m-%d_%H-%M-%S")"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
202
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
203 - name: restore ccache
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
204 # setup the github cache used to maintain the ccache from one job to the next
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
205 uses: actions/cache@v2
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
206 with:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
207 path: /Users/runner/Library/Caches/ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
208 key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
209 restore-keys: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
210 ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
211 ccache:${{ matrix.os }}:${{ matrix.compiler }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
212
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
213 - name: configure ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
214 # 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
215 # 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
216 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
217 test -d /Users/runner/Library/Preferences/ccache || mkdir /Users/runner/Library/Preferences/ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
218 echo "max_size = 1.5G" >> /Users/runner/Library/Preferences/ccache/ccache.conf
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
219 ccache -s
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
220 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
221
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
222 - name: bootstrap
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
223 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
224
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
225 - name: configure
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
226 timeout-minutes: 30
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
227 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
228 MY_CPPFLAGS: ${{ matrix.cppflags }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
229 MY_LDFLAGS: ${{ matrix.ldflags }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
230 # 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
231 # buildbot rules:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
232 # 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
233 # And the homebrew formula:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
234 # 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
235 # 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
236 # Not all of those might be needed or be correct.
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
237 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
238 echo $PATH
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
239 echo which ccache
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
240 which ccache
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
241 which $CC
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
242 echo $CC --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
243 $CC --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
244 which $CXX
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
245 echo $CXX --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
246 $CXX --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
247 which gfortran
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
248 echo gfortran --version
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
249 gfortran --version
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
250 mkdir .build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
251 cd .build && ../configure \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
252 F77="ccache gfortran" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
253 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" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
254 CXXFLAGS="-O2 -g -std=c++11" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
255 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
256 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
257 QCOLLECTIONGENERATOR="qhelpgenerator" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
258 --with-x=no \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
259 --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
260 --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
261 --prefix="${HOME}/usr"
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
262
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
263 - name: build
30366
aedfb5b870ad GitHub-CI: Overhaul environment variable usage on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30317
diff changeset
264 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
265
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
266 - name: ccache status
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
267 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
268
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
269 - name: check
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
270 # 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
271 # 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
272 # 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
273 # It would be nice if we could mark the job as "yellow" (and continue)
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
274 # in that case.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
275 # It would also be nice if we could analyze the test suite results
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
276 # automatically.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
277 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
278 timeout-minutes: 60
30013
2362fbd42c17 GitHub-CI: Add macOS 11 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29949
diff changeset
279 run: |
2362fbd42c17 GitHub-CI: Add macOS 11 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29949
diff changeset
280 echo 'makeinfo_program ("/usr/local/opt/texinfo/bin/makeinfo");' >> ./scripts/startup/site-rcfile
2362fbd42c17 GitHub-CI: Add macOS 11 runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29949
diff changeset
281 make -C ./.build check
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
282
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
283 - name: display test log
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
284 continue-on-error: true
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
285 # 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
286 timeout-minutes: 5
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
287 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
288
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
289
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
290 windows:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
291 runs-on: ${{ matrix.os }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
292
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
293 defaults:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
294 run:
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
295 # 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
296 shell: msys2 {0}
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
297
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
298 strategy:
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
299 # 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
300 fail-fast: false
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
301
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
302 matrix:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
303 # For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
304 os: [windows-2019]
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
305 compiler: [gcc]
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
306 target: [x86_64, i686]
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
307 include:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
308 - compiler: gcc
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
309 target: x86_64
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
310 target-triplet: x86_64-w64-mingw32
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
311 target-prefix: mingw-w64-x86_64
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
312 msystem: MINGW64
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
313 mingw-prefix: mingw64
30237
2b74543c85ea GitHub-CI: Don't use cross-compilers for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30229
diff changeset
314 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
315 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
316 f77: gfortran
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
317 - compiler: gcc
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
318 target: i686
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
319 target-triplet: i686-w64-mingw32
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
320 target-prefix: mingw-w64-i686
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
321 msystem: MINGW32
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
322 mingw-prefix: mingw32
30237
2b74543c85ea GitHub-CI: Don't use cross-compilers for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30229
diff changeset
323 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
324 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
325 f77: gfortran
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
326
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
327 env:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
328 CHERE_INVOKING: 1
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
329 CC: ${{ matrix.cc }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
330 CXX: ${{ matrix.cxx }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
331 F77: ${{ matrix.f77 }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
332 TARGET_TRIPLET: ${{ matrix.target-triplet }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
333 # 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
334 PERL5SHELL: bash -l -c
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
335
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
336 steps:
30317
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
337 - 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
338 # 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
339 # 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
340 # 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
341 shell: pwsh
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
342 run : |
7fc817342393 GitHub-CI: Display processor name of selected runner on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30307
diff changeset
343 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
344
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
345 - uses: msys2/setup-msys2@v2
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
346 with:
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
347 update: true
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
348
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
349 # 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
350 # 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
351 release: false
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
352
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
353 # 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
354 # 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
355 # 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
356 # The third block is for additional dependencies needed when building from a repository checkout.
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
357 # The fourth block is for additional run-time dependencies that aren't needed to build (to run test suite).
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
358 install: >-
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
359 base-devel
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
360 ${{ matrix.target-prefix }}-toolchain
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
361 ${{ matrix.target-prefix }}-lapack
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
362 ${{ matrix.target-prefix }}-openblas
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
363 ${{ matrix.target-prefix }}-pcre
29726
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
364
30229
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
365 ${{ matrix.target-prefix }}-arpack
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
366 ${{ matrix.target-prefix }}-curl
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
367 ${{ matrix.target-prefix }}-fftw
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
368 ${{ matrix.target-prefix }}-fltk
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
369 ${{ matrix.target-prefix }}-gl2ps
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
370 ${{ matrix.target-prefix }}-glpk
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
371 ${{ matrix.target-prefix }}-ghostscript
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
372 ${{ matrix.target-prefix }}-gnuplot
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
373 ${{ matrix.target-prefix }}-graphicsmagick
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
374 ${{ matrix.target-prefix }}-hdf5
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
375 ${{ matrix.target-prefix }}-libsndfile
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
376 ${{ matrix.target-prefix }}-portaudio
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
377 ${{ matrix.target-prefix }}-qhull
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
378 ${{ matrix.target-prefix }}-qrupdate
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
379 ${{ 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
380 ${{ 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
381 ${{ 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
382 ${{ 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
383 ${{ 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
384 ${{ matrix.target-prefix }}-rapidjson
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
385 ${{ matrix.target-prefix }}-suitesparse
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
386 ${{ matrix.target-prefix }}-sundials
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
387
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
388 git
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
389 ${{ matrix.target-prefix }}-ccache
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
390 ${{ matrix.target-prefix }}-icoutils
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
391 ${{ matrix.target-prefix }}-librsvg
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
392 texinfo
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
393
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
394 unzip
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
395 zip
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
396
3b3ec2ea46ef GitHub-CI: Use recommended msys2/setup-msys2 action.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30028
diff changeset
397 msystem: ${{ matrix.msystem }}
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
398
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
399 - name: checkout repository
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
400 uses: actions/checkout@v2
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
401
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
402 - name: prepare ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
403 # Create human readable timestamp
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
404 id: ccache_cache_timestamp
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
405 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
406 echo "::set-output name=TIMESTAMP::$(date +"%Y-%m-%d_%H-%M-%S")"
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
407
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
408 - name: setup ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
409 # Setup the github cache used to maintain the ccache from one job to the next
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
410 uses: actions/cache@v2
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
411 with:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
412 path: C:/msys64/home/runneradmin/.ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
413 key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.target }}:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
414 restore-keys: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
415 ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.target }}:${{ github.ref }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
416 ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.target }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
417
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
418 - name: configure ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
419 # 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
420 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
421 which ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
422 test -d ~/.ccache || mkdir -p ~/.ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
423 echo "max_size = 1.2G" > ~/.ccache/ccache.conf
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
424 echo "compression = true" >> ~/.ccache/ccache.conf
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
425 ccache -s
29726
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
426 # 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
427 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
428 # 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
429 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
430
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
431 - name: bootstrap
30307
2f50556788ac GitHub-CI: Use gnulib mirror on GitHub when bootstrapping.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30306
diff changeset
432 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
433
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
434 - 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
435 # 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
436 # 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
437 timeout-minutes: 30
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
438 # 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
439 # 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
440 # Linking with ncurses fails. Use termcap library instead.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
441 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
442 which $CC
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
443 echo $CC --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
444 $CC --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
445 which $CXX
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
446 echo $CXX --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
447 $CXX --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
448 which $F77
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
449 echo $F77 --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
450 $F77 --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
451 mkdir .build
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
452 cd .build && ../configure \
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
453 JAVA_HOME="" \
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
454 --disable-docs \
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
455 ac_cv_search_tputs=-ltermcap
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
456
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
457 - name: build
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
458 # 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
459 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
460 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
461
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
462 - name: ccache status
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
463 continue-on-error: true
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
464 run: ccache -s
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
465
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
466 - name: install
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
467 # Install Octave
30306
8b993c46fc1c GitHub-CI: No longer create manual symlinks for octave binaries on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30292
diff changeset
468 # Relocation issues with the graphicsmagick++ libraries on mingw require
8b993c46fc1c GitHub-CI: No longer create manual symlinks for octave binaries on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30292
diff changeset
469 # installing Octave before running the test suite.
8b993c46fc1c GitHub-CI: No longer create manual symlinks for octave binaries on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30292
diff changeset
470 run: make -C ./.build install V=1
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
471
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
472 - name: check
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
473 # 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
474 # 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
475 # 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
476 # It would be nice if we could mark the job as "yellow" (and continue)
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
477 # in that case.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
478 # It would also be nice if we could analyze the test suite results
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
479 # automatically.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
480 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
481 timeout-minutes: 60
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
482
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
483 # We cannot run "make check" in the MSYS2 shell because it will fail with backslash as a file separator.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
484 # Instead, use the CMD shell and set up the environment to pick up what we just built.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
485 shell: cmd
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
486 env:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
487 MSYS_PATH: C:\msys64\${{ matrix.mingw-prefix }}\bin;C:\msys64\usr\bin
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
488 MSYSTEM: ${{ matrix.msystem }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
489 TERM: cygwin
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
490 GNUTERM: wxt
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
491 GS: gs.exe
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
492
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
493 # Also, install .bat file for "makeinfo" so that it can be called from that shell.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
494 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
495 set PATH=%MSYS_PATH%;%PATH%
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
496 echo @echo off > C:/msys64/usr/bin/makeinfo.bat
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
497 echo %%~d0 >> C:/msys64/usr/bin/makeinfo.bat
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
498 echo cd "%%~dp0" >> C:/msys64/usr/bin/makeinfo.bat
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
499 echo perl "%%~n0" %%* >> C:/msys64/usr/bin/makeinfo.bat
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
500 rem Start Octave and run test suite
30292
8ee507796a34 GitHub-CI: Use octave wrapper executable also on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30291
diff changeset
501 octave --eval "__run_test_suite__"
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
502
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
503 - 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
504 continue-on-error: true
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
505 # 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
506 timeout-minutes: 5
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
507 run: cat fntests.log