From 34981229803db3335bbfb24d095d789ed516a361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=BCtzel?= Date: Mon, 28 Oct 2024 17:36:28 +0100 Subject: [PATCH 1/3] GitHub-CI (mingw): Enable relocate-all on MinGW. * .github/workflows/make-mingw.yaml (configure): Octave is installed with non-empty DESTDIR in the "install" step. Enable relocate-all so all paths are correctly relocated in subsequent steps. --- .github/workflows/make-mingw.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/make-mingw.yaml b/.github/workflows/make-mingw.yaml index 0929d06e9d..1794b84495 100644 --- a/.github/workflows/make-mingw.yaml +++ b/.github/workflows/make-mingw.yaml @@ -173,6 +173,7 @@ jobs: mkdir .build cd .build && ../configure \ JAVA_HOME="" \ + --enable-relocate-all \ --disable-docs \ ${{ matrix.extra-config-flags }} From 7f6faeef096dc79772ada7bb833fe587d9b768b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=BCtzel?= Date: Thu, 7 Nov 2024 20:16:12 +0100 Subject: [PATCH 2/3] GitHub-CI (mingw): Simplify configure flags on MinGW. * .github/workflows/make-mingw.yaml (configure): The versions of libtool and autoconf from MSYS2 no longer require additional hints for using LLVM Flang as the Fortran compiler. Remove them from the configure flags. --- .github/workflows/make-mingw.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/make-mingw.yaml b/.github/workflows/make-mingw.yaml index ce16408265..35dcc6f85a 100644 --- a/.github/workflows/make-mingw.yaml +++ b/.github/workflows/make-mingw.yaml @@ -40,11 +40,8 @@ jobs: cxx: "clang++ -std=gnu++14" f77: flang # Clang seems to require a different set of dllexport attributes than GCC. - # autoconf and libtool still need help to correctly invoke flang. extra-config-flags: --disable-lib-visibility-flags - ac_cv_f77_compiler_gnu=yes - lt_cv_prog_gnu_ld=yes ccache-max: 400M # This configuration is not fully supported yet allow-error: true From c908499c0a178835f638222806a8407e56fb9c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=BCtzel?= Date: Mon, 11 Nov 2024 12:12:49 +0100 Subject: [PATCH 3/3] GitHub-CI: Install Octave packages and run their test suites. * .github/workflows/make-alpine.yaml, .github/workflows/make-cygwin.yaml, .github/workflows/make-macos.yaml, .github/workflows/make-mingw.yaml, .github/workflows/make-ubuntu.yaml: Install Octave packages and run their test suites. The selected Octave packages are "control" (which builds .oct files and uses a Fortran compiler) and "stk" (which builds .mex files). No additional dependencies are required for these two packages. Further packages can be added in the future if the need arises. --- .github/workflows/make-alpine.yaml | 21 +++++++++++++++++++++ .github/workflows/make-cygwin.yaml | 22 ++++++++++++++++++++++ .github/workflows/make-macos.yaml | 23 +++++++++++++++++++++++ .github/workflows/make-mingw.yaml | 24 ++++++++++++++++++++++++ .github/workflows/make-ubuntu.yaml | 21 +++++++++++++++++++++ 5 files changed, 111 insertions(+) diff --git a/.github/workflows/make-alpine.yaml b/.github/workflows/make-alpine.yaml index 36e0ba0add..7994b0a735 100644 --- a/.github/workflows/make-alpine.yaml +++ b/.github/workflows/make-alpine.yaml @@ -222,6 +222,27 @@ jobs: mkoctfile --link-stand-alone embedded.cc -o embedded LD_LIBRARY_PATH="/usr/local/lib/octave/$(octave --eval "disp(version())")" ./embedded + - name: test Octave packages + env: + # colon separated list of packages + PACKAGE_NAMES: "control:stk" + run: | + unset CC + unset CXX + IFS=: + for package in "${PACKAGE_NAMES}"; do + printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n" + echo "::group::Install ${package}" + octave --eval "pkg install -verbose -forge ${package}" + echo "::endgroup::" + echo "::group::Test ${package}" + octave --eval "pkg test ${package}" + echo "::endgroup::" + echo "::group::Test log for ${package}" + cat ${GITHUB_WORKSPACE}/fntests.log + echo "::endgroup::" + done + - name: analyze test suite results # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION" run: | diff --git a/.github/workflows/make-cygwin.yaml b/.github/workflows/make-cygwin.yaml index 771698bd70..542a00d31f 100644 --- a/.github/workflows/make-cygwin.yaml +++ b/.github/workflows/make-cygwin.yaml @@ -247,6 +247,28 @@ jobs: mkoctfile --link-stand-alone embedded.cc -o embedded ./embedded.exe + - name: test Octave packages + env: + # colon separated list of packages + PACKAGE_NAMES: "control:stk" + run: | + unset CC + unset CXX + export PATH=$(echo "$PATH" | sed -e "s|/usr/lib/ccache/bin:||g") + IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}" + for package in "${packages[@]}"; do + printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n" + echo "::group::Install ${package}" + octave --eval "pkg install -verbose -forge ${package}" + echo "::endgroup::" + echo "::group::Test ${package}" + octave --eval "pkg test ${package}" + echo "::endgroup::" + echo "::group::Test log for ${package}" + cat ${GITHUB_WORKSPACE}/fntests.log + echo "::endgroup::" + done + - name: analyze test suite results # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION" run: | diff --git a/.github/workflows/make-macos.yaml b/.github/workflows/make-macos.yaml index 0788c98d70..2ad5d7431c 100644 --- a/.github/workflows/make-macos.yaml +++ b/.github/workflows/make-macos.yaml @@ -214,6 +214,29 @@ jobs: mkoctfile --link-stand-alone embedded.cc -o embedded ./embedded + - name: test Octave packages + env: + # colon separated list of packages + PACKAGE_NAMES: "control:stk" + run: | + unset CC + unset CXX + export F77=gfortran + export PATH="/Users/runner/usr/bin:$PATH" + IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}" + for package in "${packages[@]}"; do + printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n" + echo "::group::Install ${package}" + octave --eval "pkg install -verbose -forge ${package}" + echo "::endgroup::" + echo "::group::Test ${package}" + octave --eval "pkg test ${package}" + echo "::endgroup::" + echo "::group::Test log for ${package}" + cat ${GITHUB_WORKSPACE}/fntests.log + echo "::endgroup::" + done + - name: analyze test suite results # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION" run: | diff --git a/.github/workflows/make-mingw.yaml b/.github/workflows/make-mingw.yaml index 35dcc6f85a..74478968fb 100644 --- a/.github/workflows/make-mingw.yaml +++ b/.github/workflows/make-mingw.yaml @@ -246,6 +246,30 @@ jobs: mkoctfile --link-stand-alone embedded.cc -o embedded ./embedded.exe + - name: test Octave packages + continue-on-error: ${{ matrix.allow-error }} + env: + # colon separated list of packages + PACKAGE_NAMES: "control:stk" + run: | + unset CC + unset CXX + export PATH=$(echo "$PATH" | sed -e "s|$MINGW_PREFIX/lib/ccache/bin:||g") + export PATH="/c/octave/pkg/${{ matrix.mingw-prefix }}/bin:$PATH" + IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}" + for package in "${packages[@]}"; do + printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n" + echo "::group::Install ${package}" + octave --eval "pkg install -verbose -forge ${package}" + echo "::endgroup::" + echo "::group::Test ${package}" + octave --eval "pkg test ${package}" + echo "::endgroup::" + echo "::group::Test log for ${package}" + cat ${GITHUB_WORKSPACE}/fntests.log + echo "::endgroup::" + done + - name: analyze test suite results # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION" run: | diff --git a/.github/workflows/make-ubuntu.yaml b/.github/workflows/make-ubuntu.yaml index 71fb172e6b..ec4b0ea61d 100644 --- a/.github/workflows/make-ubuntu.yaml +++ b/.github/workflows/make-ubuntu.yaml @@ -168,6 +168,27 @@ jobs: LD_LIBRARY_PATH="/usr/local/lib/octave/$(octave --eval "disp(version())")" \ ./embedded + - name: test Octave packages + env: + # colon separated list of packages + PACKAGE_NAMES: "control:stk" + run: | + unset CC + unset CXX + IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}" + for package in "${packages[@]}"; do + printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n" + echo "::group::Install ${package}" + octave --eval "pkg install -verbose -forge ${package}" + echo "::endgroup::" + echo "::group::Test ${package}" + octave --eval "pkg test ${package}" + echo "::endgroup::" + echo "::group::Test log for ${package}" + cat ${GITHUB_WORKSPACE}/fntests.log + echo "::endgroup::" + done + - name: analyze test suite results # Make sure the test summary lists 0 "FAIL"s and no "REGRESSION" run: |