name: linux-tests on: push: branches-ignore: - c-main - c-3.2 pull_request: 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 COVERAGE: y EXTRA_SCRIPT_PRETEST: make install-testmodulerc install-testetcrc install-testmodspath-empty install-testmoguicmd EXTRA_SCRIPT_POSTTEST: make uninstall-testconfig steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system packages run: | # add microsoft repository for powershell curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get -y update sudo apt-get install -y expect-dev dejagnu python3-sphinx gzip bash tcsh ksh zsh fish tcl8.6 perl python3 ruby cmake r-base-core powershell # add package to run tests in an X-enabled environment sudo apt-get install -y xvfb x11-xserver-utils - name: Build Modules run: | ./configure $CONFIGURE_OPTS make - name: Test Modules build run: | eval $EXTRA_SCRIPT_PRETEST make test-deps xvfb-run script/mt eval $EXTRA_SCRIPT_POSTTEST - name: Install Modules run: | make install - name: Test Modules installation run: | xvfb-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@v4 with: token: ${{ secrets.CODECOV_TOKEN }} - uses: actions/upload-artifact@v4 if: failure() with: name: testsuite-logs-${{ github.job }} path: | modules.log install.log retention-days: 5 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 COVERAGE: y EXTRA_SCRIPT_PRETEST: make install-testinitrc install-testsiteconfig EXTRA_SCRIPT_POSTTEST: make uninstall-testconfig steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system packages run: | # add microsoft repository for powershell curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get -y update sudo apt-get install -y expect-dev dejagnu python3-sphinx gzip bash tcsh ksh zsh perl python3 ruby cmake r-base-core powershell # libtclenvmodules build requirements sudo apt-get install -y gcc autoconf # manually install tcl8.5 curl -L --output tcl8.5.19-src.tar.gz http://downloads.sourceforge.net/tcl/tcl8.5.19-src.tar.gz tar xfz tcl8.5.19-src.tar.gz cd tcl8.5.19/unix ./configure make -j sudo make install - name: Build Modules run: | ./configure $CONFIGURE_OPTS make - name: Test Modules build run: | eval $EXTRA_SCRIPT_PRETEST make test-deps script/mt eval $EXTRA_SCRIPT_POSTTEST - 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@v4 with: token: ${{ secrets.CODECOV_TOKEN }} - uses: actions/upload-artifact@v4 if: failure() with: name: testsuite-logs-${{ github.job }} path: | modules.log install.log retention-days: 5 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 COVERAGE: y EXTRA_SCRIPT_PRETEST: make install-testinitrc-1 install-testetcrc install-testmodspath EXTRA_SCRIPT_POSTTEST: make uninstall-testconfig steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system packages run: | # add microsoft repository for powershell curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get -y update sudo apt-get install -y expect-dev dejagnu python3-sphinx gzip bash tcsh ksh zsh fish perl python3 ruby cmake r-base-core powershell # libtclenvmodules build requirements sudo apt-get install -y gcc autoconf # manually install tcl8.5 curl -L --output tcl8.5.19-src.tar.gz http://downloads.sourceforge.net/tcl/tcl8.5.19-src.tar.gz tar xfz tcl8.5.19-src.tar.gz cd tcl8.5.19/unix ./configure make -j sudo make install - name: Build Modules run: | ./configure $CONFIGURE_OPTS make - name: Test Modules build run: | eval $EXTRA_SCRIPT_PRETEST make test-deps script/mt eval $EXTRA_SCRIPT_POSTTEST - 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@v4 with: token: ${{ secrets.CODECOV_TOKEN }} - uses: actions/upload-artifact@v4 if: failure() with: name: testsuite-logs-${{ github.job }} path: | modules.log install.log retention-days: 5 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 COVERAGE: y COVERAGE_OLDTCL: y COVERAGE_MULTILIB: y EXTRA_SCRIPT_PRETEST: make install-testsiteconfig-1 && export TESTSUITE_ENABLE_SITECONFIG=1 EXTRA_SCRIPT_POSTTEST: unset TESTSUITE_ENABLE_SITECONFIG TESTSUITE_ENABLE_MODULECACHE: 1 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system packages run: | # add microsoft repository for powershell curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get -y update sudo apt-get install -y expect-dev dejagnu python3-sphinx gzip bash tcsh ksh zsh fish tcl8.6 perl python3 ruby cmake r-base-core powershell # libtclenvmodules build requirements sudo apt-get install -y gcc autoconf tcl8.6-dev - name: Build Modules run: | ./configure $CONFIGURE_OPTS make - name: Test Modules build shell: 'script -q -e -c "bash {0}"' run: | set -e eval $EXTRA_SCRIPT_PRETEST make test-deps script/mt eval $EXTRA_SCRIPT_POSTTEST - 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@v4 with: token: ${{ secrets.CODECOV_TOKEN }} - uses: actions/upload-artifact@v4 if: failure() with: name: testsuite-logs-${{ github.job }} path: | modules.log install.log retention-days: 5 tcl85: runs-on: ubuntu-22.04 env: 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 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system packages run: | # add microsoft repository for powershell curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get -y update sudo apt-get install -y expect-dev dejagnu python3-sphinx gzip bash tcsh ksh zsh perl python3 ruby cmake r-base-core powershell # libtclenvmodules build requirements sudo apt-get install -y gcc autoconf # manually install tcl8.5 curl -L --output tcl8.5.19-src.tar.gz http://downloads.sourceforge.net/tcl/tcl8.5.19-src.tar.gz tar xfz tcl8.5.19-src.tar.gz cd tcl8.5.19/unix ./configure make -j sudo make install - name: Build Modules run: | ./configure $CONFIGURE_OPTS make - name: Test Modules build shell: 'script -q -e -c "bash {0}"' run: | set -e eval $EXTRA_SCRIPT_PRETEST make test-deps script/mt eval $EXTRA_SCRIPT_POSTTEST - 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@v4 with: token: ${{ secrets.CODECOV_TOKEN }} - uses: actions/upload-artifact@v4 if: failure() with: name: testsuite-logs-${{ github.job }} path: | modules.log install.log retention-days: 5 tcl87: runs-on: ubuntu-22.04 env: CONFIGURE_OPTS: --with-tclsh=tclsh8.7 --prefix=/tmp/modules --with-tcl=/usr/local/lib steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system packages run: | # add microsoft repository for powershell curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get -y update sudo apt-get install -y expect-dev dejagnu python3-sphinx gzip bash tcsh ksh zsh fish perl python3 ruby cmake r-base-core powershell # libtclenvmodules build requirements sudo apt-get install -y gcc autoconf # manually install tcl8.7 curl -L --output tcl8.7a5-src.tar.gz http://downloads.sourceforge.net/tcl/tcl8.7a5-src.tar.gz tar xfz tcl8.7a5-src.tar.gz cd tcl8.7a5/unix ./configure make -j sudo make install - name: Build Modules run: | ./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 - name: Uninstall Modules run: | make uninstall - uses: actions/upload-artifact@v4 if: failure() with: name: testsuite-logs-${{ github.job }} path: | modules.log 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 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system packages run: | # add microsoft repository for powershell curl -LJO https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get -y update sudo apt-get install -y expect-dev dejagnu python3-sphinx gzip bash tcsh ksh zsh fish perl python3 ruby cmake r-base-core powershell # libtclenvmodules build requirements sudo apt-get install -y gcc autoconf # manually install tcl9.0 curl -L --output tcl9.0.2-src.tar.gz http://downloads.sourceforge.net/tcl/tcl9.0.2-src.tar.gz tar xfz tcl9.0.2-src.tar.gz cd tcl9.0.2/unix ./configure make -j sudo make install - name: Build Modules run: | ./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 - name: Uninstall Modules run: | make uninstall - uses: actions/upload-artifact@v4 if: failure() with: name: testsuite-logs-${{ github.job }} path: | modules.log install.log retention-days: 5