diff --git a/.cirrus.yml b/.cirrus.yml deleted file mode 100644 index 35753a239..000000000 --- a/.cirrus.yml +++ /dev/null @@ -1,246 +0,0 @@ -env: - MAKE: make - -clone_template: &CLONE_TEMPLATE - # need to supersede Cirrus CI-specific git clone with a regular git client - clone_script: | - if [ "$CIRRUS_OS" = 'darwin' ]; then - brew install git - elif [ "$CIRRUS_OS" = 'freebsd' ]; then - pkg install -y git - elif [ -n "$(command -v zypper)" ]; then - zypper install -y git - elif [ -n "$(command -v apt-get)" ]; then - apt-get update - apt-get -y install git - else - yum install -y git - fi - if [ -z "$CIRRUS_PR" ]; then - git clone --branch=$CIRRUS_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR - else - git clone https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR - fi - cd $CIRRUS_WORKING_DIR - if [ -n "$CIRRUS_PR" ]; then - git fetch origin pull/$CIRRUS_PR/head:pull/$CIRRUS_PR - fi - git reset --hard $CIRRUS_CHANGE_IN_REPO - -artifacts_template: &ARTIFACTS_TEMPLATE - always: - log_artifacts: - path: modules.log - type: text/plain - installlog_artifacts: - path: install.log - type: text/plain - -build_install_test_template: &BUILD_INSTALL_TEST_TEMPLATE - build_script: - - $MAKE - test_script: | - if [ -n "$TEST_SPECIFIC_CONFIG" ]; then - $MAKE $TEST_SPECIFIC_CONFIG - fi - $MAKE test-deps - script/mt - if [ -n "$TEST_SPECIFIC_CONFIG" ]; then - $MAKE uninstall-testconfig - fi - install_script: - - $MAKE install - testinstall_script: - - script/mt install - uninstall_script: - - $MAKE uninstall - -build_install_xvfbtest_template: &BUILD_INSTALL_XVBFTEST_TEMPLATE - build_script: - - $MAKE - test_script: | - if [ -n "$TEST_SPECIFIC_CONFIG" ]; then - $MAKE $TEST_SPECIFIC_CONFIG - fi - $MAKE test-deps - xvfb-run script/mt - if [ -n "$TEST_SPECIFIC_CONFIG" ]; then - $MAKE uninstall-testconfig - fi - install_script: - - $MAKE install - testinstall_script: - - xvfb-run script/mt install - uninstall_script: - - $MAKE uninstall - - -task: - << : *CLONE_TEMPLATE - env: - MAKE: gmake - freebsd_instance: - image_family: freebsd-14-3 - cpu: 1 - memory: 2G - reqinstall_script: pkg install -y bash curl gmake dejagnu py311-sphinx gzip tcl86 tcl-wrapper autoconf ksh93 zsh fish perl5 python311 ruby cmake R readline - configure_script: - - ./configure - << : *BUILD_INSTALL_TEST_TEMPLATE - << : *ARTIFACTS_TEMPLATE - -task: - << : *CLONE_TEMPLATE - env: - COVERAGE: y - macos_instance: - image: ghcr.io/cirruslabs/macos-runner:sonoma - reqinstall_script: - - brew uninstall mise - - brew update - - brew install md5sha1sum expect dejagnu grep fish r tcl-tk gzip powershell - configure_script: - - ./configure --prefix=/tmp/modules --with-loadedmodules=null:dot --with-tcl=/opt/homebrew/lib --with-tclsh=/opt/homebrew/bin/tclsh - << : *BUILD_INSTALL_TEST_TEMPLATE - coverage_script: - - for f in tcl/*.tcl; do script/nglfar2ccov $f; done - - cd lib; gcov envmodules; cd .. - - curl -Os https://uploader.codecov.io/latest/macos/codecov - - chmod +x codecov - - ./codecov - << : *ARTIFACTS_TEMPLATE - -task: - << : *CLONE_TEMPLATE - # change dir to launch tests from path containing specific chars - env: - CIRRUS_WORKING_DIR: /tmp/modules-1.2.3+branch_name-91-g6dd3db49 - DEBIAN_FRONTEND: noninteractive - LANGUAGE: C - LANG: C - LC_ALL: C - TEST_SPECIFIC_CONFIG: install-testmodspath-wild - EXTRATEST_SOURCESH: y - TESTSUITE_ENABLE_MODULECACHE: 1 - container: - image: ubuntu:noble - cpu: 1 - memory: 2G - reqinstall_script: | - # restore manpages subsystem in container - yes | unminimize || true - # install requirements - apt-get update - apt-get -y install curl expect-dev dejagnu python3-sphinx gzip man-db bash tcsh ksh zsh fish tcl tcl8.6 perl python3 ruby cmake r-base-core - # libtclenvmodules build requirements - apt-get -y install gcc autoconf tcl8.6-dev - # requirements for source-sh extra tests - apt-get -y install lsof - # install powershell - curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb - dpkg -i packages-microsoft-prod.deb - rm packages-microsoft-prod.deb - apt-get update - apt-get install -y powershell - configure_script: - - ./configure --with-tclsh=tclsh8.6 --prefix /tmp/modules --with-tcl=/usr/lib/tcl8.6 --enable-append-manpath --enable-append-binpath --with-bin-search-path=/usr/bin:/bin --enable-silent-shell-debug-support --enable-windows-support --with-loadedmodules=null:dot --enable-quarantine-support --with-quarantine-vars=LD_LIBRARY_PATH --enable-new-features --with-dark-background-colors='hi=1:se=2:er=91:wa=93:mp=1;94:di=94:al=96:sy=95' --enable-foo FOO=bar - << : *BUILD_INSTALL_TEST_TEMPLATE - << : *ARTIFACTS_TEMPLATE - -task: - << : *CLONE_TEMPLATE - env: - DEBIAN_FRONTEND: noninteractive - LANGUAGE: C - LANG: C - LC_ALL: C - container: - image: ubuntu:jammy - cpu: 1 - memory: 2G - reqinstall_script: | - # restore manpages subsystem in container - yes | unminimize || true - # install requirements - apt-get update - apt-get -y install curl expect-dev dejagnu python3-sphinx gzip man-db bash tcsh ksh zsh fish tcl tcl8.6 perl python3 ruby cmake r-base-core lsb-release - # libtclenvmodules build requirements - apt-get -y install gcc autoconf tcl8.6-dev - # requirements for source-sh extra tests - apt-get -y install lsof - # install powershell - curl -LJO https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb - dpkg -i packages-microsoft-prod.deb - rm packages-microsoft-prod.deb - apt-get update - apt-get install -y powershell - configure_script: - - ./configure --with-tclsh=tclsh8.6 --prefix='/tmp/mo ules' --with-tcl=/usr/lib/tcl8.6 - << : *BUILD_INSTALL_TEST_TEMPLATE - << : *ARTIFACTS_TEMPLATE - -task: - << : *CLONE_TEMPLATE - container: - matrix: - image: rockylinux:8 - cpu: 1 - memory: 2G - reqinstall_script: | - sed -i 's|enabled=0|enabled=1|' /etc/yum.repos.d/Rocky-PowerTools.repo - # specific update of libarchive is required for CMake on EL8.3 - yum update -y libarchive - # need to pre-install correct module implementation to avoid fetching - # another one from EPEL (as dependency for R-core) on recent RockyLinux 8 - yum install -y environment-modules - yum install -y epel-release - yum install -y tcsh zsh ksh tcl perl python36 gzip ruby cmake R-core make curl perl python3-sphinx git dejagnu man-db rpm-build bzip2 autoconf gcc tcl-devel emacs - yum install -y which xorg-x11-server-utils xorg-x11-server-Xvfb - yum install -y fish - configure_script: - - ./configure --with-loadedmodules=null:dot --enable-quarantine-support --with-quarantine-vars='LD_LIBRARY_PATH LD_PRELOAD' --with-bashcompletiondir=/usr/share/bash-completion/completions --with-fishcompletiondir=/usr/share/fish/vendor_completions.d --with-zshcompletiondir=/usr/share/zsh/site-functions - # also enable a display on this test case to validate x-resource behavior - << : *BUILD_INSTALL_XVBFTEST_TEMPLATE - rpm_script: - - xvfb-run make srpm rpm - << : *ARTIFACTS_TEMPLATE - -task: - << : *CLONE_TEMPLATE - env: - LANGUAGE: C - LANG: C - LC_ALL: C - arm_container: - image: almalinux:9 - cpu: 1 - memory: 2G - reqinstall_script: | - dnf install -y dnf-plugins-core epel-release - dnf config-manager --set-enabled crb - dnf install -y tcsh zsh ksh fish tcl perl python3 gzip ruby cmake R-core make perl python3-sphinx git dejagnu man-db rpm-build bzip2 autoconf gcc tcl-devel procps-ng emacs - configure_script: - - ./configure --with-bashcompletiondir=/usr/share/bash-completion/completions --with-fishcompletiondir=/usr/share/fish/vendor_completions.d --with-zshcompletiondir=/usr/share/zsh/site-functions - # also enable a display on this test case to validate x-resource behavior - << : *BUILD_INSTALL_TEST_TEMPLATE - rpm_script: - - make srpm rpm - << : *ARTIFACTS_TEMPLATE - -task: - << : *CLONE_TEMPLATE - container: - matrix: - image: opensuse/leap:15.5 - cpu: 1 - memory: 2G - reqinstall_script: | - zypper install -y tcsh zsh ksh fish tcl perl python3 ruby cmake R-core R-core-packages make curl python3-Sphinx gzip git dejagnu man net-tools autoconf gcc tcl-devel util-linux-systemd procps - zypper install -y which xrdb xvfb-run - configure_script: - - ./configure --enable-versioning --with-loadedmodules=null:dot --with-quarantine-vars='LD_LIBRARY_PATH LD_PRELOAD' - # also enable a display on this test case to validate x-resource behavior - << : *BUILD_INSTALL_XVBFTEST_TEMPLATE - << : *ARTIFACTS_TEMPLATE - -# vim:set tabstop=2 shiftwidth=2 expandtab autoindent: diff --git a/.github/workflows/linux_tests.yaml b/.github/workflows/linux_tests.yaml index 0dbfbbdd5..1276a9eac 100644 --- a/.github/workflows/linux_tests.yaml +++ b/.github/workflows/linux_tests.yaml @@ -11,7 +11,16 @@ jobs: tcl86-nolibtclenvmodules: runs-on: ubuntu-22.04 env: - CONFIGURE_OPTS: --with-tclsh=tclsh8.6 --disable-libtclenvmodules --prefix=/tmp/modules --with-pager=more --with-pager-opts=-X --with-initconf-in=initdir --enable-quarantine-support --disable-set-binpath --disable-set-manpath + CONFIGURE_OPTS: | + --with-tclsh=tclsh8.6 + --disable-libtclenvmodules + --prefix=/tmp/mo ules + --with-pager=more + --with-pager-opts=-X + --with-initconf-in=initdir + --enable-quarantine-support + --disable-set-binpath + --disable-set-manpath COVERAGE: y EXTRA_SCRIPT_PRETEST: make install-testmodulerc install-testetcrc install-testmodspath-empty install-testmoguicmd EXTRA_SCRIPT_POSTTEST: make uninstall-testconfig @@ -31,7 +40,8 @@ jobs: sudo apt-get install -y xvfb x11-xserver-utils - name: Build Modules run: | - ./configure $CONFIGURE_OPTS + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" make - name: Test Modules build run: | @@ -68,7 +78,27 @@ jobs: tcl85-nolibtclenvmodules: runs-on: ubuntu-22.04 env: - CONFIGURE_OPTS: --with-tclsh=tclsh8.5 --prefix=/tmp/modules --disable-libtclenvmodules --with-tcl=/usr/local/lib --enable-versioning --with-loadedmodules=null:dot --without-pager --disable-avail-indepth --disable-spider-indepth --with-terminal-background=light --with-unload-match-order=returnfirst --disable-implicit-default --with-search-match=contains --with-locked-configs=extra_siteconfig --disable-auto-handling --disable-extended-default --disable-advanced-version-spec --disable-color --with-icase=never --with-tcl-linter=nagelfar135/nagelfar.tcl + CONFIGURE_OPTS: | + --with-tclsh=tclsh8.5 + --prefix=/tmp/modules + --disable-libtclenvmodules + --with-tcl=/usr/local/lib + --enable-versioning + --with-loadedmodules=null:dot + --without-pager + --disable-avail-indepth + --disable-spider-indepth + --with-terminal-background=light + --with-unload-match-order=returnfirst + --disable-implicit-default + --with-search-match=contains + --with-locked-configs=extra_siteconfig + --disable-auto-handling + --disable-extended-default + --disable-advanced-version-spec + --disable-color + --with-icase=never + --with-tcl-linter=nagelfar135/nagelfar.tcl COVERAGE: y EXTRA_SCRIPT_PRETEST: make install-testinitrc install-testsiteconfig EXTRA_SCRIPT_POSTTEST: make uninstall-testconfig @@ -95,7 +125,8 @@ jobs: sudo make install - name: Build Modules run: | - ./configure $CONFIGURE_OPTS + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" make - name: Test Modules build run: | @@ -132,7 +163,23 @@ jobs: tcl85-2: runs-on: ubuntu-22.04 env: - CONFIGURE_OPTS: --with-tclsh=tclsh8.5 --prefix=/tmp/modules --with-tcl=/usr/local/lib --enable-quarantine-support --enable-silent-shell-debug-support --enable-modulespath --with-pager=more --with-dark-background-colors=hi --with-locked-configs=implicit_default --enable-wa-277 --enable-advanced-version-spec --disable-ml --disable-implicit-requirement --enable-set-shell-startup --enable-path-entry-reorder --disable-compressed-changelog + CONFIGURE_OPTS: | + --with-tclsh=tclsh8.5 + --prefix=/tmp/modules + --with-tcl=/usr/local/lib + --enable-quarantine-support + --enable-silent-shell-debug-support + --enable-modulespath + --with-pager=more + --with-dark-background-colors=hi + --with-locked-configs=implicit_default + --enable-wa-277 + --enable-advanced-version-spec + --disable-ml + --disable-implicit-requirement + --enable-set-shell-startup + --enable-path-entry-reorder + --disable-compressed-changelog COVERAGE: y EXTRA_SCRIPT_PRETEST: make install-testinitrc-1 install-testetcrc install-testmodspath EXTRA_SCRIPT_POSTTEST: make uninstall-testconfig @@ -159,7 +206,8 @@ jobs: sudo make install - name: Build Modules run: | - ./configure $CONFIGURE_OPTS + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" make - name: Test Modules build run: | @@ -196,7 +244,12 @@ jobs: tcl86: runs-on: ubuntu-22.04 env: - CONFIGURE_OPTS: --with-tclsh=tclsh8.6 --prefix=/tmp/modules --libdir=/tmp/modules/lib64 --enable-multilib-support --enable-new-features + CONFIGURE_OPTS: | + --with-tclsh=tclsh8.6 + --prefix=/tmp/modules + --libdir=/tmp/modules/lib64 + --enable-multilib-support + --enable-new-features COVERAGE: y COVERAGE_OLDTCL: y COVERAGE_MULTILIB: y @@ -219,7 +272,8 @@ jobs: sudo apt-get install -y gcc autoconf tcl8.6-dev - name: Build Modules run: | - ./configure $CONFIGURE_OPTS + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" make - name: Test Modules build shell: 'script -q -e -c "bash {0}"' @@ -258,7 +312,10 @@ jobs: tcl85: runs-on: ubuntu-22.04 env: - CONFIGURE_OPTS: --with-tclsh=tclsh8.5 --prefix=/tmp/modules --with-tcl=/usr/local/lib + CONFIGURE_OPTS: | + --with-tclsh=tclsh8.5 + --prefix=/tmp/modules + --with-tcl=/usr/local/lib COVERAGE: y EXTRA_SCRIPT_PRETEST: make install-testsiteconfig-1 && export TESTSUITE_ENABLE_SITECONFIG=1 EXTRA_SCRIPT_POSTTEST: unset TESTSUITE_ENABLE_SITECONFIG @@ -285,7 +342,8 @@ jobs: sudo make install - name: Build Modules run: | - ./configure $CONFIGURE_OPTS + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" make - name: Test Modules build shell: 'script -q -e -c "bash {0}"' @@ -322,13 +380,34 @@ jobs: retention-days: 5 tcl91: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: - CONFIGURE_OPTS: --with-tclsh=tclsh9.1 --prefix=/tmp/modules --with-tcl=/usr/local/lib + CONFIGURE_OPTS: | + --with-tclsh=/usr/local/bin/tclsh9.1 + --prefix=/tmp/modules + --with-tcl=/usr/local/lib + --enable-append-manpath + --enable-append-binpath + --with-bin-search-path=/usr/bin:/bin + --enable-silent-shell-debug-support + --enable-windows-support + --with-loadedmodules=null:dot + --enable-quarantine-support + --with-quarantine-vars=LD_LIBRARY_PATH + --enable-new-features + --with-dark-background-colors=hi=1:se=2:er=91:wa=93:mp=1;94:di=94:al=96:sy=95 + --enable-foo + FOO=bar + EXTRA_SCRIPT_PRETEST: make install-testmodspath-wild + EXTRA_SCRIPT_POSTTEST: unset TESTSUITE_ENABLE_SITECONFIG + TESTSUITE_ENABLE_MODULECACHE: 1 + EXTRATEST_SOURCESH: y steps: - uses: actions/checkout@v6 with: fetch-depth: 0 + # change dir to launch tests from path containing specific chars + path: modules-1.2.3+branch_name-91-g6dd3db49 - name: Install system packages run: | # add microsoft repository for powershell @@ -347,20 +426,28 @@ jobs: make -j sudo make install - name: Build Modules + working-directory: modules-1.2.3+branch_name-91-g6dd3db49 run: | - ./configure $CONFIGURE_OPTS + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" make - name: Test Modules build + working-directory: modules-1.2.3+branch_name-91-g6dd3db49 run: | + eval $EXTRA_SCRIPT_PRETEST make test-deps script/mt + eval $EXTRA_SCRIPT_POSTTEST - name: Install Modules + working-directory: modules-1.2.3+branch_name-91-g6dd3db49 run: | make install - name: Test Modules installation + working-directory: modules-1.2.3+branch_name-91-g6dd3db49 run: | script/mt install - name: Uninstall Modules + working-directory: modules-1.2.3+branch_name-91-g6dd3db49 run: | make uninstall - uses: actions/upload-artifact@v7 @@ -368,14 +455,17 @@ jobs: with: name: testsuite-logs-${{ github.job }} path: | - modules.log - install.log + modules-1.2.3+branch_name-91-g6dd3db49/modules.log + modules-1.2.3+branch_name-91-g6dd3db49/install.log retention-days: 5 tcl90: runs-on: ubuntu-22.04 env: - CONFIGURE_OPTS: --with-tclsh=tclsh9.0 --prefix=/tmp/modules --with-tcl=/usr/local/lib + CONFIGURE_OPTS: | + --with-tclsh=tclsh9.0 + --prefix=/tmp/modules + --with-tcl=/usr/local/lib COVERAGE: y steps: - uses: actions/checkout@v6 @@ -400,7 +490,8 @@ jobs: sudo make install - name: Build Modules run: | - ./configure $CONFIGURE_OPTS + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" make - name: Test Modules build run: | @@ -431,3 +522,122 @@ jobs: modules.log install.log retention-days: 5 + + el8: + runs-on: ubuntu-latest + container: + image: rockylinux:8 + env: + CONFIGURE_OPTS: | + --with-loadedmodules=null:dot + --enable-quarantine-support + --with-quarantine-vars=LD_LIBRARY_PATH LD_PRELOAD + --with-bashcompletiondir=/usr/share/bash-completion/completions + --with-fishcompletiondir=/usr/share/fish/vendor_completions.d + --with-zshcompletiondir=/usr/share/zsh/site-functions + steps: + - name: Install system packages + run: | + sed -i 's|enabled=0|enabled=1|' /etc/yum.repos.d/Rocky-PowerTools.repo + # specific update of libarchive is required for CMake on EL8.3 + yum update -y libarchive + # need to pre-install correct module implementation to avoid fetching + # another one from EPEL (as dependency for R-core) on recent RockyLinux 8 + yum install -y environment-modules + # need git in PATH for actions/checkout to get git repo instead of github export + dnf install -y git + yum install -y epel-release + yum install -y tcsh zsh ksh tcl perl python36 gzip ruby cmake R-core make curl perl python3-sphinx git dejagnu man-db rpm-build bzip2 autoconf gcc tcl-devel emacs + yum install -y which xorg-x11-server-utils xorg-x11-server-Xvfb + yum install -y fish + - name: Fix git safe directory + run: | + # avoid "detected dubious ownership in repository" error + git config --global --add safe.directory "$GITHUB_WORKSPACE" + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Build Modules + run: | + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" + make + # also enable a display on this test case to validate x-resource behavior + - name: Test Modules build + run: | + make test-deps + xvfb-run script/mt + - name: Install Modules + run: | + make install + - name: Test Modules installation + run: | + xvfb-run script/mt install + - name: Uninstall Modules + run: | + make uninstall + - name: Build RPM & SRPM packages + run: | + xvfb-run make srpm rpm + - uses: actions/upload-artifact@v7 + if: failure() + with: + name: testsuite-logs-${{ github.job }} + path: | + /__w/modules/modules/modules.log + /__w/modules/modules/install.log + retention-days: 5 + + el9: + runs-on: ubuntu-latest + container: + image: almalinux:9 + env: + CONFIGURE_OPTS: | + --with-bashcompletiondir=/usr/share/bash-completion/completions + --with-fishcompletiondir=/usr/share/fish/vendor_completions.d + --with-zshcompletiondir=/usr/share/zsh/site-functions + steps: + - name: Install system packages + run: | + # need git in PATH for actions/checkout to get git repo instead of github export + dnf install -y git + dnf install -y dnf-plugins-core epel-release + dnf config-manager --set-enabled crb + dnf install -y tcsh zsh ksh fish tcl perl python3 gzip ruby cmake R-core make perl python3-sphinx git dejagnu man-db rpm-build bzip2 autoconf gcc tcl-devel procps-ng emacs + - name: Fix git safe directory + run: | + # avoid "detected dubious ownership in repository" error + git config --global --add safe.directory "$GITHUB_WORKSPACE" + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Build Modules + run: | + mapfile -t opts <<< "$CONFIGURE_OPTS" + ./configure "${opts[@]}" + make + - name: Test Modules build + run: | + make test-deps + script/mt + - name: Install Modules + run: | + make install + - name: Test Modules installation + run: | + script/mt install + - name: Uninstall Modules + run: | + make uninstall + - name: Build RPM & SRPM packages + run: | + make srpm rpm + - uses: actions/upload-artifact@v7 + if: failure() + with: + name: testsuite-logs-${{ github.job }} + path: | + /__w/modules/modules/modules.log + /__w/modules/modules/install.log + retention-days: 5 diff --git a/.github/workflows/macos_tests.yaml b/.github/workflows/macos_tests.yaml new file mode 100644 index 000000000..1c3547d96 --- /dev/null +++ b/.github/workflows/macos_tests.yaml @@ -0,0 +1,59 @@ +name: macos-tests + +on: + push: + branches-ignore: + - c-main + - c-3.2 + pull_request: + +jobs: + macos: + runs-on: macos-15 + env: + CONFIGURE_OPTS: --prefix=/tmp/modules --with-loadedmodules=null:dot --with-tcl=/opt/homebrew/lib --with-tclsh=/opt/homebrew/bin/tclsh + COVERAGE: y + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Install system packages + run: | + brew update + brew install autoconf md5sha1sum expect dejagnu grep fish r tcl-tk gzip powershell sphinx-doc + - name: Build Modules + run: | + # handle CONFIGURE_OPTS differently than on linux tests as bash version here + # does not support "mapfile" builtin. as a result, CONFIGURE_OPTS cannot contain + # here whitespace or shell specific characters like ';' + ./configure $CONFIGURE_OPTS + make + - name: Test Modules build + run: | + make test-deps + script/mt + - name: Install Modules + run: | + make install + - name: Test Modules installation + run: | + script/mt install + for f in tcl/*.tcl; do + script/nglfar2ccov $f + done + cd lib + gcov envmodules + - name: Uninstall Modules + run: | + make uninstall + - uses: codecov/codecov-action@v6 + with: + token: ${{ secrets.CODECOV_TOKEN }} + - uses: actions/upload-artifact@v7 + if: failure() + with: + name: testsuite-logs-${{ github.job }} + path: | + modules.log + install.log + retention-days: 5 diff --git a/.hunspell.en.dic b/.hunspell.en.dic index 601e2c5f4..0c40f8703 100644 --- a/.hunspell.en.dic +++ b/.hunspell.en.dic @@ -1332,3 +1332,5 @@ tsc LFX YYYYMMDD roadmap +CI +GHA diff --git a/testsuite/install.00-init/080-args.exp b/testsuite/install.00-init/080-args.exp index 894b5bb6f..7e3781917 100644 --- a/testsuite/install.00-init/080-args.exp +++ b/testsuite/install.00-init/080-args.exp @@ -155,7 +155,7 @@ foreach shell $othlang_list { testall_cmd_re "$shell" "append-path,FOO,\\\$foo:source,$modfile" "" "$foo:\\\\\\\$foo" 0 } python { - testall_cmd_re "$shell" "append-path,FOO,\\\$foo:source,$modfile" "" "(:3: SyntaxWarning: invalid escape sequence '\\\\\\$'\\n)?$foo:\\\\\\\$foo" 0 + testall_cmd_re "$shell" "append-path,FOO,\\\$foo:source,$modfile" "" "(:3: SyntaxWarning: invalid escape sequence '\\\\\\$'\\n|:3: SyntaxWarning: \"\\\\\\$\" is an invalid escape sequence.*\\n)?$foo:\\\\\\\$foo" 0 } default { testall_cmd_re "$shell" "append-path,FOO,\\\$foo:source,$modfile" "" "$foo:\\\$foo" 0