annotate .github/workflows/make.yaml @ 29949:f254c302bb9c

remove JIT compiler from Octave sources As stated in the NEWS file entry added with this changeset, no one has ever seriously taken on further development of the JIT compiler in Octave since it was first added as part of a Google Summer of Code project in 2012 and it still does nothing significant. It is out of date with the default interpreter that walks the parse tree. Even though we have fixed the configure script to disable it by default, people still ask questions about how to build it, but it doesn’t seem that they are doing that to work on it but because they think it will make Octave code run faster (it never did, except for some extremely simple bits of code as examples for demonstration purposes only). * NEWS: Note change. * configure.ac, acinclude.m4: Eliminate checks and macros related to the JIT compiler and LLVM. * basics.txi, install.txi, octave.texi, vectorize.txi: Remove mention of JIT compiler and LLVM. * jit-ir.cc, jit-ir.h, jit-typeinfo.cc, jit-typeinfo.h, jit-util.cc, jit-util.h, pt-jit.cc, pt-jit.h: Delete. * libinterp/parse-tree/module.mk: Update. * Array-jit.cc: Delete. * libinterp/template-inst/module.mk: Update. * test/jit.tst: Delete. * test/module.mk: Update. * interpreter.cc (interpreter::interpreter): Don't check options for debug_jit or jit_compiler. * toplev.cc (F__octave_config_info__): Remove JIT compiler and LLVM info from struct. * ov-base.h (octave_base_value::grab, octave_base_value::release): Delete. * ov-builtin.h, ov-builtin.cc (octave_builtin::to_jit, octave_builtin::stash_jit): Delete. (octave_builtin::m_jtype): Delete data member and all uses. * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::m_jit_info): Delete data member and all uses. (octave_user_function::get_info, octave_user_function::stash_info): Delete. * options.h (DEBUG_JIT_OPTION, JIT_COMPILER_OPTION): Delete macro definitions and all uses. * octave.h, octave.cc (cmdline_options::cmdline_options): Don't handle DEBUG_JIT_OPTION, JIT_COMPILER_OPTION): Delete. (cmdline_options::debug_jit, cmdline_options::jit_compiler): Delete functions and all uses. (cmdline_options::m_debug_jit, cmdline_options::m_jit_compiler): Delete data members and all uses. (octave_getopt_options long_opts): Remove "debug-jit" and "jit-compiler" from the list. * pt-eval.cc (tree_evaluator::visit_simple_for_command, tree_evaluator::visit_complex_for_command, tree_evaluator::visit_while_command, tree_evaluator::execute_user_function): Eliminate JIT compiler code. * pt-loop.h, pt-loop.cc (tree_while_command::get_info, tree_while_command::stash_info, tree_simple_for_command::get_info, tree_simple_for_command::stash_info): Delete functions and all uses. (tree_while_command::m_compiled, tree_simple_for_command::m_compiled): Delete member variable and all uses. * usage.h (usage_string, octave_print_verbose_usage_and_exit): Remove [--debug-jit] and [--jit-compiler] from the message. * Array.h (Array<T>::Array): Remove constructor that was only intended to be used by the JIT compiler. (Array<T>::jit_ref_count, Array<T>::jit_slice_data, Array<T>::jit_dimensions, Array<T>::jit_array_rep): Delete. * Marray.h (MArray<T>::MArray): Remove constructor that was only intended to be used by the JIT compiler. * NDArray.h (NDArray::NDarray): Remove constructor that was only intended to be used by the JIT compiler. * dim-vector.h (dim_vector::to_jit): Delete. (dim_vector::dim_vector): Remove constructor that was only intended to be used by the JIT compiler. * codeql-analysis.yaml, make.yaml: Don't require llvm-dev. * subst-config-vals.in.sh, subst-cross-config-vals.in.sh: Don't substitute OCTAVE_CONF_LLVM_CPPFLAGS, OCTAVE_CONF_LLVM_LDFLAGS, or OCTAVE_CONF_LLVM_LIBS. * Doxyfile.in: Don't define HAVE_LLVM. * aspell-octave.en.pws: Eliminate jit, JIT, and LLVM from the list of spelling exceptions. * build-env.h, build-env.in.cc (LLVM_CPPFLAGS, LLVM_LDFLAGS, LLVM_LIBS): Delete variables and all uses. * libinterp/corefcn/module.mk (%canon_reldir%_libcorefcn_la_CPPFLAGS): Remove $(LLVM_CPPFLAGS) from the list. * libinterp/parse-tree/module.mk (%canon_reldir%_libparse_tree_la_CPPFLAGS): Remove $(LLVM_CPPFLAGS) from the list.
author John W. Eaton <jwe@octave.org>
date Tue, 10 Aug 2021 16:42:29 -0400
parents 53de043ea532
children 2362fbd42c17
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1 name: make
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2 on: [push]
29589
c3d463a3c472 GitHub-CI: Avoid running multiple actions at the same time
Markus Mützel <markus.muetzel@gmx.de>
parents: 29587
diff changeset
3 concurrency: ci-${{ github.ref }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
4
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5 jobs:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7 ubuntu:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8 runs-on: ${{ matrix.os }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
9
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10 strategy:
29792
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
11 # Allow other runners in the matrix to continue if some fail
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
12 fail-fast: false
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
13
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
14 matrix:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
15 # For available GitHub-hosted runners, see:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
16 # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
17 os: [ubuntu-20.04, ubuntu-18.04]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
18 compiler: [gcc, clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
19 include:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
20 - compiler: gcc
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
21 compiler-pkgs: "g++ gcc"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
22 cc: "gcc"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
23 cxx: "g++"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
24 - compiler: clang
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
25 compiler-pkgs: "clang"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
26 cc: "clang"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
27 cxx: "clang++"
29584
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
28 # "ccache" on Ubuntu 20.04 with gcc seems to require much more cache
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
29 # storage than on the other runners to work effectively.
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
30 - ccache-max: 3G
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
31 - os: ubuntu-20.04
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
32 compiler: gcc
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
33 ccache-max: 6G
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
34
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
35 steps:
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
36 - name: checkout repository
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
37 uses: actions/checkout@v2
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
38
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
39 - name: install dependencies
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
40 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
41 COMPILER_PKGS: ${{ matrix.compiler-pkgs }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
42 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
43 sudo apt -qq update
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
44 sudo apt install -y $COMPILER_PKGS autoconf automake bison ccache \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
45 dvipng epstool fig2dev flex gfortran gnuplot-x11 gperf gzip \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
46 icoutils libarpack2-dev libblas-dev libcurl4-gnutls-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
47 libfftw3-dev libfltk1.3-dev libfontconfig1-dev libfreetype6-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
48 libgl1-mesa-dev libgl2ps-dev libglpk-dev libgraphicsmagick++1-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
49 libhdf5-dev liblapack-dev libosmesa6-dev libpcre3-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
50 libqhull-dev libqscintilla2-qt5-dev libqrupdate-dev \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
51 libreadline-dev librsvg2-bin libsndfile1-dev libsuitesparse-dev \
29949
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29925
diff changeset
52 libsundials-dev libtool libxft-dev make openjdk-8-jdk \
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
53 perl portaudio19-dev pstoedit qtbase5-dev qttools5-dev \
29587
d10027532f0a GitHub-CI: Install dependency rapidjson.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29584
diff changeset
54 qttools5-dev-tools rapidjson-dev rsync tar texinfo \
d10027532f0a GitHub-CI: Install dependency rapidjson.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29584
diff changeset
55 texlive-latex-extra xvfb zlib1g-dev
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
56
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
57 - name: prepare ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
58 # create human readable timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
59 id: ccache_cache_timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
60 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
61 echo "::set-output name=TIMESTAMP::$(date +"%Y-%m-%d_%H-%M-%S")"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
62
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
63 - name: setup ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
64 # setup the github cache used to maintain the ccache from one job to the next
29792
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
65 # uses: actions/cache@v2
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
66 # The original action doesn't upload on error. Use this fork instead.
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
67 # FIXME: Consider reverting to the original action when it allows uploading on error.
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
68 # See: https://github.com/actions/cache/issues/92
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
69 uses: pat-s/always-upload-cache@v2
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
70 with:
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
71 path: ~/.ccache
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
72 key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:${{ steps.ccache_cache_timestamp.outputs.timestamp }}:${{ github.sha }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
73 restore-keys: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
74 ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
75 ccache:${{ matrix.os }}:${{ matrix.compiler }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
76
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
77 - name: configure ccache
29584
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
78 env:
c05d23ac4931 GitHub-CI: Increase ccache size for gcc on Ubuntu 20.04.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29582
diff changeset
79 CCACHE_MAX: ${{ matrix.ccache-max }}
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
80 run: |
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
81 test -d ~/.ccache || mkdir ~/.ccache
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
82 echo "max_size = $CCACHE_MAX" >> ~/.ccache/ccache.conf
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
83 ccache -s
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
84
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
85 - name: bootstrap
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
86 run: ./bootstrap
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
87
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
88 - name: configure
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
89 timeout-minutes: 30
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
90 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
91 MY_CC: ${{ matrix.cc }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
92 MY_CXX: ${{ matrix.cxx }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
93 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
94 echo $MY_CC --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
95 $MY_CC --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
96 echo $MY_CXX --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
97 $MY_CXX --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
98 mkdir .build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
99 cd .build && ../configure \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
100 CC="ccache $MY_CC" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
101 CXX="ccache $MY_CXX" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
102 F77="ccache gfortran" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
103 CPPFLAGS="-I/usr/include/hdf5/serial -I/usr/include/suitesparse" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
104 LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
105
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
106 - name: build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
107 # Parallel make seems to fail intermittently when creating the figures
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
108 # for the manual. The error message says it fails to connect to a
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
109 # display. Maybe an xvfb issue?
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
110 # Use single job make for now which seems to work more reliably.
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
111 run: XDG_RUNTIME_DIR=$RUNNER_TEMP xvfb-run -a make -C ./.build all V=1
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
112
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
113 - name: ccache status
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
114 run: ccache -s
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
115
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
116 - name: check
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
117 timeout-minutes: 60
29888
f2c6ea6c4abc GitHub-CI: Don't use absolute paths to user home on Ubuntu runner.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29881
diff changeset
118 run: XDG_RUNTIME_DIR=$RUNNER_TEMP xvfb-run -a make -C ./.build check | tee ./test-suite.log
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
119
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
120 - name: display test log
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
121 continue-on-error: true
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
122 # Displaying the log shouldn't take long. Cancel the step if it does.
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
123 timeout-minutes: 5
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
124 run: cat ./.build/test/fntests.log
29792
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
125
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
126 - name: analyze test suite results
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
127 # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
128 run: |
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
129 [ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || exit 1
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
130 [ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || exit 1
315df8a5ac22 GitHub-CI: Analyze test suite results on Ubuntu.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29740
diff changeset
131 echo No unknown failing tests.
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
132
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
133
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
134 macos:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
135 runs-on: ${{ matrix.os }}
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
136
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
137 strategy:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
138 matrix:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
139 # 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
140 os: [macos-10.15]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
141 # 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
142 # 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
143 # that don't match.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
144 # compiler: [real-gcc, clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
145 compiler: [clang]
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
146 include:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
147 # - compiler: real-gcc
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
148 # 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
149 # 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
150 # 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
151 # 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
152 - compiler: clang
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
153 cc: "clang"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
154 cxx: "clang++"
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
155
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
156 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
157 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
158
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
159 steps:
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
160 - name: checkout repository
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
161 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
162
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
163 - name: install dependencies
29907
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
164 # This step sometimes takes long and still recovers. But sometimes it
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
165 # seems to hang indefinitely.
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
166 # Use a pretty long timeout (but still less than the default 6 hours).
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
167 timeout-minutes: 75
39780b2456a8 GitHub-CI: Add timeout when installing depencencies on macOS.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29888
diff changeset
168
29697
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
169 # 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
170 # re-installed.
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
171
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
172 # 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
173 # 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
174 # 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
175 # 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
176 # 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
177 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
178 brew update
29697
3ef50a8d01c5 GitHub-CI: Re-install gcc on macOS runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29660
diff changeset
179 brew reinstall gcc
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
180 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
181 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
182 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
183 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
184 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
185 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
186 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
187
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
188 - name: prepare ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
189 # create human readable timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
190 id: ccache_cache_timestamp
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
191 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
192 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
193
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
194 - name: setup ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
195 # 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
196 uses: actions/cache@v2
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
197 with:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
198 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
199 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
200 restore-keys: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
201 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
202 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
203
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
204 - name: configure ccache
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
205 # 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
206 # 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
207 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
208 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
209 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
210 ccache -s
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
211
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
212 - name: bootstrap
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
213 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
214 export PATH="$MY_PATH:$PATH"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
215 ./bootstrap
29582
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
216
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
217 - name: configure
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
218 timeout-minutes: 30
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
219 env:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
220 MY_CC: ${{ matrix.cc }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
221 MY_CXX: ${{ matrix.cxx }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
222 MY_CPPFLAGS: ${{ matrix.cppflags }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
223 MY_LDFLAGS: ${{ matrix.ldflags }}
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
224 # 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
225 # buildbot rules:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
226 # 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
227 # And the homebrew formula:
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
228 # 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
229 # 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
230 # 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
231 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
232 export PATH="$MY_PATH:$PATH"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
233 echo $PATH
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
234 echo $MY_CC --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
235 $MY_CC --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
236 echo $MY_CXX --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
237 $MY_CXX --version
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
238 mkdir .build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
239 cd .build && ../configure \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
240 CC="ccache $MY_CC" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
241 CXX="ccache $MY_CXX" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
242 F77="ccache gfortran" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
243 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
244 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
245 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
246 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
247 QCOLLECTIONGENERATOR="qhelpgenerator" \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
248 --with-x=no \
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
249 --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
250 --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
251 --prefix="${HOME}/usr"
8f142a26a343 GitHub-CI: Install on macOS before running test suite.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29581
diff changeset
252
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
253 - name: build
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
254 run: |
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
255 export PATH="$MY_PATH:$PATH"
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
256 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
257
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
258 - name: ccache status
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
259 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
260
29581
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
261 - name: check
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
262 # 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
263 # 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
264 # 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
265 # 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
266 # in that case.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
267 # 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
268 # automatically.
def7cbcf85ed Add rule for continuous integration tests on GitHub.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
269 continue-on-error: true
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
270 timeout-minutes: 60
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
271 run: make -C ./.build check
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
272
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
273 - name: display test log
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
274 continue-on-error: true
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
275 # Displaying the log shouldn't take long. Cancel the step if it does.
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
276 timeout-minutes: 5
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
277 run: cat ./.build/test/fntests.log
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
278
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
279
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
280 windows:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
281 runs-on: ${{ matrix.os }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
282
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
283 defaults:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
284 run:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
285 # 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
286 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
287
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
288 strategy:
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
289 # Allow other runners in the matrix to continue if some fail
29740
c3bab252f071 GitHub-CI: Timeout configure step on Windows after 30 minutes.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29726
diff changeset
290 fail-fast: false
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
291
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
292 matrix:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
293 # 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
294 os: [windows-2019]
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
295 compiler: [gcc]
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
296 target: [x86_64, i686]
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
297 include:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
298 - compiler: gcc
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
299 target: x86_64
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
300 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
301 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
302 msystem: MINGW64
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
303 mingw-prefix: mingw64
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
304 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
305 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
306 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
307 - compiler: gcc
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
308 target: i686
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
309 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
310 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
311 msystem: MINGW32
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
312 mingw-prefix: mingw32
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
313 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
314 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
315 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
316
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
317 env:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
318 MSYSTEM: ${{ matrix.msystem }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
319 CHERE_INVOKING: 1
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
320 CC: ${{ matrix.cc }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
321 CXX: ${{ matrix.cxx }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
322 F77: ${{ matrix.f77 }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
323 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
324 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
325 # 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
326 PERL5SHELL: bash -l -c
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 steps:
29726
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
329 - name: update MSYS2
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
330 # 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
331 # 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
332 continue-on-error: true
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
333 run: pacman --noconfirm -Syu
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
334
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
335 - name: install dependencies
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
336 # 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
337 # 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
338 # 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
339 # The third block is for additional dependencies needed when building from a repository checkout.
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
340 # The fourth block is for additional run-time dependencies that aren't needed to build (to run test suite)
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
341 run: |
29726
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
342 pacman --noconfirm -Syu
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
343 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
344 base-devel ${TARGET_PREFIX}-toolchain ${TARGET_PREFIX}-lapack ${TARGET_PREFIX}-openblas ${TARGET_PREFIX}-pcre \
29921
6b7ac07ffa85 GitHub-CI: Install SUNDIALS on Windows runners.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29919
diff changeset
345 ${TARGET_PREFIX}-arpack ${TARGET_PREFIX}-curl ${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 ${TARGET_PREFIX}-sundials \
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
346 git ${TARGET_PREFIX}-ccache ${TARGET_PREFIX}-icoutils ${TARGET_PREFIX}-librsvg texinfo \
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
347 unzip zip
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
348
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
349 - name: checkout repository
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
350 uses: actions/checkout@v2
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
351
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
352 - name: prepare ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
353 # Create human readable timestamp
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
354 id: ccache_cache_timestamp
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
355 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
356 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
357
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
358 - name: setup ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
359 # 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
360 uses: actions/cache@v2
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
361 with:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
362 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
363 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
364 restore-keys: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
365 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
366 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
367
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
368 - name: configure ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
369 # 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
370 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
371 which ccache
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
372 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
373 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
374 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
375 ccache -s
29726
be335be5c0bc GitHub-CI: Update MSYS2 in workflow for Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29721
diff changeset
376 # 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
377 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
378 # 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
379 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
380
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
381 - name: bootstrap
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
382 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
383 ./bootstrap
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: configure
29740
c3bab252f071 GitHub-CI: Timeout configure step on Windows after 30 minutes.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29726
diff changeset
386 # 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
387 # 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
388 timeout-minutes: 30
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
389 # 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
390 # 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
391 # 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
392 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
393 which $CC
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
394 echo $CC --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
395 $CC --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
396 which $CXX
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
397 echo $CXX --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
398 $CXX --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
399 which $F77
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
400 echo $F77 --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
401 $F77 --version
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
402 mkdir .build
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
403 cd .build && ../configure \
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
404 JAVA_HOME="" \
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
405 --disable-docs \
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
406 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
407
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
408 - name: build
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
409 # 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
410 run: |
29925
53de043ea532 GitHub-CI: Remove obsolete hack in MSYS2 rules for error fixed upstream.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29921
diff changeset
411 make -C ./.build all -j8 V=1
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
412
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
413 - name: ccache status
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
414 continue-on-error: true
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
415 run: ccache -s
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
416
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
417 - name: install
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
418 # Install Octave
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
419 # 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
420 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
421 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
422 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
423 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
424
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
425 - name: check
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
426 # 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
427 # 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
428 # 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
429 # 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
430 # in that case.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
431 # 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
432 # automatically.
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
433 continue-on-error: true
29841
9a17e0834c4e GitHub-CI: Decrease time-out for some steps.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29813
diff changeset
434 timeout-minutes: 60
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
435
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
436 # 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
437 # 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
438 shell: cmd
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
439 env:
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
440 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
441 MSYSTEM: ${{ matrix.msystem }}
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
442 TERM: cygwin
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
443 GNUTERM: wxt
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
444 GS: gs.exe
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
445
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
446 # 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
447 run: |
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
448 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
449 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
450 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
451 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
452 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
453 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
454 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
455
29881
35155423c0ef GitHub-CI: Display fntests.log in separate step.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29841
diff changeset
456 - name: display test log
29718
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
457 continue-on-error: true
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
458 # 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
459 timeout-minutes: 5
504fcc051d51 GitHub-CI: Add workflow for native Windows builds.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29697
diff changeset
460 run: cat fntests.log