Mercurial > octave
annotate .github/workflows/make.yaml @ 29740:c3bab252f071
GitHub-CI: Timeout configure step on Windows after 30 minutes.
* .github/workflows/make.yaml (windows): For currently unknown reasons,
compiling Fortran files seems to intermittently block execution indefinitely.
Time out after 30 minutes in this case. But allow other jobs in the matrix to
continue.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Mon, 07 Jun 2021 16:54:12 +0200 |
parents | be335be5c0bc |
children | 315df8a5ac22 |
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: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
11 matrix: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
12 # 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
|
13 # 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
|
14 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
|
15 compiler: [gcc, clang] |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
16 include: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
17 - compiler: gcc |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
18 compiler-pkgs: "g++ gcc" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
19 cc: "gcc" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
20 cxx: "g++" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
21 - compiler: clang |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
22 compiler-pkgs: "clang" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
23 cc: "clang" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
24 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
|
25 # "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
|
26 # 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
|
27 - 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
|
28 - 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
|
29 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
|
30 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
|
31 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
32 steps: |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
33 - name: checkout repository |
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
34 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
|
35 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
36 - name: install dependencies |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
37 env: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
38 COMPILER_PKGS: ${{ matrix.compiler-pkgs }} |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
39 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
40 sudo apt -qq update |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
41 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
|
42 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
|
43 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
|
44 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
|
45 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
|
46 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
|
47 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
|
48 libreadline-dev librsvg2-bin libsndfile1-dev libsuitesparse-dev \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
49 libsundials-dev libtool libxft-dev llvm-dev make openjdk-8-jdk \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
50 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
|
51 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
|
52 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
|
53 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
54 - name: prepare ccache |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
55 # create human readable timestamp |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
56 id: ccache_cache_timestamp |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
57 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
58 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
|
59 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
60 - name: setup ccache |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
61 # 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
|
62 uses: actions/cache@v2 |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
63 with: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
64 path: /home/runner/.ccache |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
65 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
|
66 restore-keys: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
67 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
|
68 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
|
69 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
70 - 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
|
71 env: |
c05d23ac4931
GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29582
diff
changeset
|
72 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
|
73 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
74 test -d /home/runner/.ccache || mkdir /home/runner/.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
|
75 echo "max_size = $CCACHE_MAX" >> /home/runner/.ccache/ccache.conf |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
76 ccache -s |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
77 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
78 - name: bootstrap |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
79 run: ./bootstrap |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
80 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
81 - name: configure |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
82 env: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
83 MY_CC: ${{ matrix.cc }} |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
84 MY_CXX: ${{ matrix.cxx }} |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
85 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
86 echo $MY_CC --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
87 $MY_CC --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
88 echo $MY_CXX --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
89 $MY_CXX --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
90 mkdir .build |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
91 cd .build && ../configure \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
92 CC="ccache $MY_CC" \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
93 CXX="ccache $MY_CXX" \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
94 F77="ccache gfortran" \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
95 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
|
96 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
|
97 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
98 - name: build |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
99 env: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
100 XDG_RUNTIME_DIR: "/home/runner/tmp" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
101 # 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
|
102 # 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
|
103 # display. Maybe an xvfb issue? |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
104 # Use single job make for now which seems to work more reliably. |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
105 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
106 test -d $XDG_RUNTIME_DIR || mkdir $XDG_RUNTIME_DIR |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
107 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
|
108 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
109 - name: ccache status |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
110 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
|
111 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
112 - name: check |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
113 # 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
|
114 # 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
|
115 # ccache and other jobs will be cancelled. |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
116 # 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
|
117 # in that case. |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
118 # 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
|
119 # automatically. |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
120 continue-on-error: true |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
121 env: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
122 XDG_RUNTIME_DIR: "/home/runner/tmp" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
123 run: xvfb-run -a make -C ./.build check V=1 |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
124 |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
125 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
126 macos: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
127 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
|
128 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
129 strategy: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
130 matrix: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
131 # For available GitHub-hosted runners, see: 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
|
132 os: [macos-10.15] |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
133 # 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
|
134 # 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
|
135 # that don't match. |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
136 # compiler: [real-gcc, clang] |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
137 compiler: [clang] |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
138 include: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
139 # - compiler: real-gcc |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
140 # 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
|
141 # 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
|
142 # 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
|
143 # 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
|
144 - compiler: clang |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
145 cc: "clang" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
146 cxx: "clang++" |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
147 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
148 env: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
149 MY_PATH: "/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/bison/bin:/usr/local/opt/texinfo/bin:/usr/local/opt/qt@5/bin:/Library/TeX/texbin" |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
150 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
151 steps: |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
152 - name: checkout repository |
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
153 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
|
154 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
155 - name: install dependencies |
29697
3ef50a8d01c5
GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29660
diff
changeset
|
156 # 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
|
157 # re-installed. |
3ef50a8d01c5
GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29660
diff
changeset
|
158 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
159 # 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
|
160 # 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
|
161 # 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
|
162 # 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
|
163 # 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
|
164 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
165 brew update |
29697
3ef50a8d01c5
GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29660
diff
changeset
|
166 brew reinstall gcc |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 eval "$(/usr/libexec/path_helper)" |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
174 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
175 - name: prepare ccache |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
176 # create human readable timestamp |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
177 id: ccache_cache_timestamp |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
178 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
179 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
|
180 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
181 - name: setup ccache |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
182 # 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
|
183 uses: actions/cache@v2 |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
184 with: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
185 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
|
186 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
|
187 restore-keys: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
188 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
|
189 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
|
190 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
191 - name: configure ccache |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
192 # 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
|
193 # 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
|
194 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
195 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
|
196 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
|
197 ccache -s |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
198 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
199 - name: bootstrap |
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 export PATH="$MY_PATH:$PATH" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
202 ./bootstrap |
29582
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
203 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
204 - name: configure |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
205 env: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
206 MY_CC: ${{ matrix.cc }} |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
207 MY_CXX: ${{ matrix.cxx }} |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
208 MY_CPPFLAGS: ${{ matrix.cppflags }} |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
209 MY_LDFLAGS: ${{ matrix.ldflags }} |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
210 # 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
|
211 # buildbot rules: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
212 # 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
|
213 # And the homebrew formula: |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
214 # 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
|
215 # 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
|
216 # 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
|
217 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
218 export PATH="$MY_PATH:$PATH" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
219 echo $PATH |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
220 echo $MY_CC --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
221 $MY_CC --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
222 echo $MY_CXX --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
223 $MY_CXX --version |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
224 mkdir .build |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
225 cd .build && ../configure \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
226 CC="ccache $MY_CC" \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
227 CXX="ccache $MY_CXX" \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
228 F77="ccache gfortran" \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
229 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
|
230 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
|
231 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
|
232 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
|
233 QCOLLECTIONGENERATOR="qhelpgenerator" \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
234 --with-x=no \ |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
235 --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
|
236 --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
|
237 --prefix="${HOME}/usr" |
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: build |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
240 run: | |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
241 export PATH="$MY_PATH:$PATH" |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
242 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
|
243 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
244 - name: ccache status |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
245 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
|
246 |
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
247 - name: install |
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
248 # Install Octave prior to running the test suite for "mkoctfile" to |
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
249 # work correctly. |
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
250 run: make -C ./.build install V=1 |
8f142a26a343
GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29581
diff
changeset
|
251 |
29581
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
252 - name: check |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
253 # 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
|
254 # 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
|
255 # 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
|
256 # 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
|
257 # in that case. |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
258 # 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
|
259 # automatically. |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
260 continue-on-error: true |
def7cbcf85ed
Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
261 run: make -C ./.build check V=1 |
29718
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
262 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
263 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
264 windows: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
265 runs-on: ${{ matrix.os }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
266 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
267 defaults: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
268 run: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
269 # Use pre-installed MSYS2 as default shell |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
270 shell: C:/msys64/usr/bin/bash.exe --login -eo pipefail "{0}" |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
271 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
272 strategy: |
29740
c3bab252f071
GitHub-CI: Timeout configure step on Windows after 30 minutes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29726
diff
changeset
|
273 fail-fast: false |
29718
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
274 matrix: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
275 # 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
|
276 os: [windows-2019] |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
277 compiler: [gcc] |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
278 target: [x86_64, i686] |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
279 include: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
280 - compiler: gcc |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
281 target: x86_64 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
282 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
|
283 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
|
284 msystem: MINGW64 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
285 mingw-prefix: mingw64 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
286 cc: x86_64-w64-mingw32-gcc |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
287 cxx: x86_64-w64-mingw32-g++ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
288 f77: x86_64-w64-mingw32-gfortran |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
289 - compiler: gcc |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
290 target: i686 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
291 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
|
292 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
|
293 msystem: MINGW32 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
294 mingw-prefix: mingw32 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
295 cc: i686-w64-mingw32-gcc |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
296 cxx: i686-w64-mingw32-g++ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
297 f77: i686-w64-mingw32-gfortran |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
298 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
299 env: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
300 MSYSTEM: ${{ matrix.msystem }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
301 CHERE_INVOKING: 1 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
302 CC: ${{ matrix.cc }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
303 CXX: ${{ matrix.cxx }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
304 F77: ${{ matrix.f77 }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
305 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
|
306 TARGET_PREFIX: ${{ matrix.target-prefix }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
307 # 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
|
308 PERL5SHELL: bash -l -c |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
309 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
310 steps: |
29726
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
311 - name: update MSYS2 |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
312 # This step might update the runtime which requires a console restart |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
313 # In this case, it will kill the console which shouldn't count as an error. |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
314 continue-on-error: true |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
315 run: pacman --noconfirm -Syu |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
316 |
29718
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
317 - name: install dependencies |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
318 # The packages are listed in (alphabetically sorted) blocks: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
319 # The first block is for mandatory dependencies. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
320 # The second block is for optional dependencies needed when building from a release tarball. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
321 # The third block is for additional dependencies needed when building from a repository checkout. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
322 run: | |
29726
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
323 pacman --noconfirm -Syu |
29718
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
324 pacman --noconfirm -S --needed --overwrite * \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
325 base-devel ${TARGET_PREFIX}-toolchain ${TARGET_PREFIX}-lapack ${TARGET_PREFIX}-openblas ${TARGET_PREFIX}-pcre \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
326 ${TARGET_PREFIX}-arpack ${TARGET_PREFIX}-curl ${TARGET_PREFIX}-cvode ${TARGET_PREFIX}-fftw ${TARGET_PREFIX}-fltk ${TARGET_PREFIX}-gl2ps ${TARGET_PREFIX}-glpk ${TARGET_PREFIX}-ghostscript ${TARGET_PREFIX}-gnuplot ${TARGET_PREFIX}-graphicsmagick ${TARGET_PREFIX}-hdf5 ${TARGET_PREFIX}-libsndfile ${TARGET_PREFIX}-portaudio ${TARGET_PREFIX}-qhull ${TARGET_PREFIX}-qrupdate ${TARGET_PREFIX}-qscintilla ${TARGET_PREFIX}-qt5 ${TARGET_PREFIX}-rapidjson ${TARGET_PREFIX}-suitesparse \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
327 git ${TARGET_PREFIX}-ccache ${TARGET_PREFIX}-icoutils ${TARGET_PREFIX}-librsvg texinfo |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
328 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
329 - name: checkout repository |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
330 uses: actions/checkout@v2 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
331 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
332 - name: prepare ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
333 # Create human readable timestamp |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
334 id: ccache_cache_timestamp |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
335 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
336 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
|
337 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
338 - name: setup ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
339 # 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
|
340 uses: actions/cache@v2 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
341 with: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
342 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
|
343 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
|
344 restore-keys: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
345 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
|
346 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
|
347 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
348 - name: configure ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
349 # 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
|
350 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
351 which ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
352 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
|
353 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
|
354 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
|
355 ccache -s |
29726
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
356 # 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
|
357 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
|
358 # 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
|
359 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
|
360 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
361 - name: bootstrap |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
362 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
363 ./bootstrap |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
364 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
365 - 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
|
366 # 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
|
367 # 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
|
368 timeout-minutes: 30 |
29718
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
369 # PortAudio requires linking to libuuid. But its pkg-config file doesn't reference the path to that library. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
370 # 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
|
371 # 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
|
372 # 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
|
373 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
374 which $CC |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
375 echo $CC --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
376 $CC --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
377 which $CXX |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
378 echo $CXX --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
379 $CXX --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
380 which $F77 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
381 echo $F77 --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
382 $F77 --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
383 mkdir .build |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
384 cd .build && ../configure \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
385 JAVA_HOME="" \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
386 --disable-docs \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
387 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
|
388 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
389 - name: build |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
390 # 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
|
391 # MSYS2's "fltk-config" returns wrong LIBS. Override them for make. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
392 # See: https://github.com/msys2/MINGW-packages/issues/8806 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
393 # MSYS2's "portaudio" doesn't depend on uuid. But its package-config file still contains "-luuid". Override the flags for make. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
394 # See: https://github.com/msys2/MINGW-packages/issues/8805 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
395 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
396 make -C ./.build all -j8 V=1 \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
397 FLTK_LIBS="-lfltk_gl -lopengl32 -lglu32 -lfltk -lpthread" \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
398 PORTAUDIO_LIBS="-lportaudio -ldsound -lsetupapi -lwinmm -lm -lole32" |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
399 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
400 - name: ccache status |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
401 continue-on-error: true |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
402 run: ccache -s |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
403 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
404 - name: install |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
405 # Install Octave |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
406 # Create symlinks to the libexec binaries in bin (or they won't find their libraries?) |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
407 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
408 make -C ./.build install V=1 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
409 ln -sf ${MINGW_PREFIX}/libexec/octave/7.0.0/exec/${TARGET_TRIPLET}/octave-gui.exe ${MINGW_PREFIX}/bin/octave-gui.exe |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
410 ln -sf ${MINGW_PREFIX}/libexec/octave/7.0.0/exec/${TARGET_TRIPLET}/octave-svgconvert.exe ${MINGW_PREFIX}/bin/octave-svgconvert.exe |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
411 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
412 - name: check |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
413 # 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
|
414 # 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
|
415 # 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
|
416 # 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
|
417 # in that case. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
418 # 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
|
419 # automatically. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
420 continue-on-error: true |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
421 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
422 # 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
|
423 # 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
|
424 shell: cmd |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
425 env: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
426 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
|
427 MSYSTEM: ${{ matrix.msystem }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
428 TERM: cygwin |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
429 GNUTERM: wxt |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
430 GS: gs.exe |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
431 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
432 # 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
|
433 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
434 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
|
435 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
|
436 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
|
437 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
|
438 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
|
439 rem Start Octave and run test suite |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
440 octave-gui --eval "__run_test_suite__" |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
441 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
442 - name: display test results |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
443 continue-on-error: true |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
444 # 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
|
445 timeout-minutes: 5 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
446 run: cat fntests.log |