Mercurial > octave
annotate .github/workflows/make.yaml @ 29726:be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
* .github/workflow/make.yaml (windows): Update MSYS2 environment at the
beginning of the workflow. Create ccache helper script for Fortran compiler
again.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Fri, 04 Jun 2021 10:35:32 +0200 |
parents | 24effbddcbe8 |
children | c3bab252f071 |
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: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
273 matrix: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
274 # 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
|
275 os: [windows-2019] |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
276 compiler: [gcc] |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
277 target: [x86_64, i686] |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
278 include: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
279 - compiler: gcc |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
280 target: x86_64 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
281 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
|
282 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
|
283 msystem: MINGW64 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
284 mingw-prefix: mingw64 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
285 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
|
286 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
|
287 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
|
288 - compiler: gcc |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
289 target: i686 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
290 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
|
291 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
|
292 msystem: MINGW32 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
293 mingw-prefix: mingw32 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
294 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
|
295 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
|
296 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
|
297 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
298 env: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
299 MSYSTEM: ${{ matrix.msystem }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
300 CHERE_INVOKING: 1 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
301 CC: ${{ matrix.cc }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
302 CXX: ${{ matrix.cxx }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
303 F77: ${{ matrix.f77 }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
304 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
|
305 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
|
306 # 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
|
307 PERL5SHELL: bash -l -c |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
308 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
309 steps: |
29726
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
310 - name: update MSYS2 |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
311 # 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
|
312 # 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
|
313 continue-on-error: true |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
314 run: pacman --noconfirm -Syu |
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
315 |
29718
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
316 - name: install dependencies |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
317 # 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
|
318 # 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
|
319 # 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
|
320 # 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
|
321 run: | |
29726
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
322 pacman --noconfirm -Syu |
29718
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
323 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
|
324 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
|
325 ${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
|
326 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
|
327 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
328 - name: checkout repository |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
329 uses: actions/checkout@v2 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
330 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
331 - name: prepare ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
332 # Create human readable timestamp |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
333 id: ccache_cache_timestamp |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
334 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
335 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
|
336 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
337 - name: setup ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
338 # 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
|
339 uses: actions/cache@v2 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
340 with: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
341 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
|
342 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
|
343 restore-keys: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
344 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
|
345 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
|
346 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
347 - name: configure ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
348 # 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
|
349 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
350 which ccache |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
351 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
|
352 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
|
353 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
|
354 ccache -s |
29726
be335be5c0bc
GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29721
diff
changeset
|
355 # 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
|
356 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
|
357 # 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
|
358 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
|
359 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
360 - name: bootstrap |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
361 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
362 ./bootstrap |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
363 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
364 - name: configure |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
365 # 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
|
366 # 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
|
367 # 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
|
368 # 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
|
369 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
370 which $CC |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
371 echo $CC --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
372 $CC --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
373 which $CXX |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
374 echo $CXX --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
375 $CXX --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
376 which $F77 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
377 echo $F77 --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
378 $F77 --version |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
379 mkdir .build |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
380 cd .build && ../configure \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
381 JAVA_HOME="" \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
382 --disable-docs \ |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
383 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
|
384 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
385 - name: build |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
386 # 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
|
387 # 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
|
388 # 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
|
389 # 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
|
390 # 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
|
391 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
392 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
|
393 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
|
394 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
|
395 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
396 - name: ccache status |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
397 continue-on-error: true |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
398 run: ccache -s |
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: install |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
401 # Install Octave |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
402 # 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
|
403 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
404 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
|
405 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
|
406 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
|
407 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
408 - name: check |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
409 # 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
|
410 # 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
|
411 # 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
|
412 # 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
|
413 # in that case. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
414 # 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
|
415 # automatically. |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
416 continue-on-error: true |
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 # 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
|
419 # 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
|
420 shell: cmd |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
421 env: |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
422 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
|
423 MSYSTEM: ${{ matrix.msystem }} |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
424 TERM: cygwin |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
425 GNUTERM: wxt |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
426 GS: gs.exe |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
427 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
428 # 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
|
429 run: | |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
430 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
|
431 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
|
432 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
|
433 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
|
434 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
|
435 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
|
436 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
|
437 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
438 - name: display test results |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
439 continue-on-error: true |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
440 # 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
|
441 timeout-minutes: 5 |
504fcc051d51
GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29697
diff
changeset
|
442 run: cat fntests.log |