diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index 85e9198855..4521186580 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -17,10 +17,10 @@ jobs: python: [3.7] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 - name: set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{matrix.python}} architecture: x64 @@ -28,7 +28,7 @@ jobs: - name: install OS & Python packages run: | # for modules tool - APT_PKGS="lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev" + APT_PKGS="lua5.3 liblua5.3-dev lua-filesystem lua-posix tcl tcl-dev" # for building Singularity images APT_PKGS+=" rpm dnf" diff --git a/.github/workflows/container_tests_apptainer.yml b/.github/workflows/container_tests_apptainer.yml index 4f9df0df9a..1f8417ea7d 100644 --- a/.github/workflows/container_tests_apptainer.yml +++ b/.github/workflows/container_tests_apptainer.yml @@ -15,13 +15,13 @@ jobs: strategy: matrix: python: [3.7] - apptainer: [1.0.0, 1.1.7] + apptainer: [1.0.0, 1.1.7, 1.3.6] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 - name: set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{matrix.python}} architecture: x64 @@ -31,7 +31,7 @@ jobs: # for building CentOS 7 container images APT_PKGS="rpm dnf" # for modules tool - APT_PKGS+=" lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev" + APT_PKGS+=" lua5.3 liblua5.3-dev lua-filesystem lua-posix tcl tcl-dev" # Avoid apt-get update, as we don't really need it, # and it does more harm than good (it's fairly expensive, and it results in flaky test runs) @@ -41,12 +41,6 @@ jobs: sudo apt-get install $APT_PKGS fi - # fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 - # needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists - if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then - sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so - fi - - name: install Lmod run: | # avoid downloading modules tool sources into easybuild-framework dir diff --git a/.github/workflows/eb_command.yml b/.github/workflows/eb_command.yml index 625206b870..e1c3f87996 100644 --- a/.github/workflows/eb_command.yml +++ b/.github/workflows/eb_command.yml @@ -11,16 +11,16 @@ concurrency: jobs: test-eb: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: - python: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13'] + python: [3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13'] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 - name: set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{matrix.python}} architecture: x64 @@ -38,7 +38,7 @@ jobs: fi # for modules tool - APT_PKGS="lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev" + APT_PKGS="lua5.3 liblua5.3-dev lua-filesystem lua-posix tcl tcl-dev" # Avoid apt-get update, as we don't really need it, # and it does more harm than good (it's fairly expensive, and it results in flaky test runs) @@ -48,12 +48,6 @@ jobs: sudo apt-get install $APT_PKGS fi - # fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 - # needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists - if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then - sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so - fi - - name: install modules tool run: | # avoid downloading modules tool sources into easybuild-framework dir diff --git a/.github/workflows/end2end.yml b/.github/workflows/end2end.yml index dedbcaa8d9..b2bf320d94 100644 --- a/.github/workflows/end2end.yml +++ b/.github/workflows/end2end.yml @@ -8,26 +8,19 @@ jobs: matrix: container: - centos-8.5 - - fedora-36 + - fedora-41 - opensuse-15.4 - - rockylinux-8.8 - - rockylinux-9.2 + - rockylinux-8.10 + - rockylinux-9.5 - ubuntu-20.04 - ubuntu-22.04 + - ubuntu-24.04 fail-fast: false container: image: ghcr.io/easybuilders/${{ matrix.container }}-amd64 - volumes: - - /node20217:/node20217:rw,rshared - - ${{ matrix.container == 'centos-7.9' && '/node20217:/__e/node20:ro,rshared' || ' ' }} steps: - - name: install nodejs20glibc2.17 - if: ${{ matrix.container == 'centos-7.9' }} - run: | - curl -LO https://unofficial-builds.nodejs.org/download/release/v20.9.0/node-v20.9.0-linux-x64-glibc-217.tar.xz - tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217 - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 - name: download and unpack easyblocks and easyconfigs repositories run: | @@ -66,4 +59,8 @@ jobs: - name: End-to-end test of installing bzip2 with EasyBuild shell: bash run: | - sudo -u easybuild bash -l -c "source /tmp/eb_env; eb bzip2-1.0.8.eb --trace --robot" + EB_ARGS='' + if [[ "${{ matrix.container }}" == "fedora-41" ]] || [[ "${{ matrix.container }}" == "ubuntu-24.04" ]]; then + EB_ARGS='--filter-deps=binutils' + fi + sudo -u easybuild bash -l -c "source /tmp/eb_env; eb bzip2-1.0.8.eb --trace --robot ${EB_ARGS}" diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 9dba1ed474..faff6f75a9 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -10,15 +10,15 @@ concurrency: jobs: python-linting: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: - python-version: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13'] + python-version: [3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 - name: set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index d39994361d..a2409daeae 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -11,9 +11,9 @@ concurrency: jobs: setup: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 outputs: - lmod8: Lmod-8.7.6 + lmod8: Lmod-8.7.58 modules4: modules-4.5.3 modules5: modules-5.3.1 steps: @@ -23,7 +23,8 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python: [3.6] + # Python 3.10 is default in Ubuntu 22.04 + python: ['3.10'] modules_tool: # use variables defined by 'setup' job above, see also # https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context @@ -33,13 +34,11 @@ jobs: lc_all: [""] include: # Test different Python 3 versions with Lmod 8.x (with both Lua and Tcl module syntax) - - python: 3.7 - modules_tool: ${{needs.setup.outputs.lmod8}} - - python: 3.8 + - python: '3.7' modules_tool: ${{needs.setup.outputs.lmod8}} - - python: 3.9 + - python: '3.8' modules_tool: ${{needs.setup.outputs.lmod8}} - - python: '3.10' + - python: '3.9' modules_tool: ${{needs.setup.outputs.lmod8}} - python: '3.11' modules_tool: ${{needs.setup.outputs.lmod8}} @@ -47,17 +46,12 @@ jobs: modules_tool: ${{needs.setup.outputs.lmod8}} - python: '3.13' modules_tool: ${{needs.setup.outputs.lmod8}} - # There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set - # Hence run the tests (again) with LC_ALL=C and Python 3.6 (or any < 3.7) - - python: 3.6 - modules_tool: ${{needs.setup.outputs.lmod8}} - lc_all: C fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2 - name: set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 with: python-version: ${{matrix.python}} architecture: x64 @@ -65,7 +59,7 @@ jobs: - name: install OS & Python packages run: | # for modules tool - APT_PKGS="lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev" + APT_PKGS="lua5.3 liblua5.3-dev lua-filesystem lua-posix tcl tcl-dev" # for GitPython, python-hglib APT_PKGS+=" git mercurial" # dep for GC3Pie @@ -79,11 +73,6 @@ jobs: sudo apt-get install $APT_PKGS fi - # fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 - # needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists - if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then - sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so - fi # Python packages pip --version pip install --upgrade pip @@ -94,8 +83,8 @@ jobs: pip install --upgrade setuptools fi # git config is required to make actual git commits (cfr. tests for GitRepository) - git config --global user.name "Travis CI" - git config --global user.email "travis@travis-ci.org" + git config --global user.name "Github Actions" + git config --global user.email "actions@github.com" git config --get-regexp 'user.*' - name: install GitHub token (if available) @@ -105,9 +94,9 @@ jobs: # and are only run after the PR gets merged GITHUB_TOKEN: ${{secrets.CI_UNIT_TESTS_GITHUB_TOKEN}} run: | - # only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9, to avoid hitting GitHub rate limit + # only install GitHub token when testing with Lmod 8.x + Python 3.9, to avoid hitting GitHub rate limit # tests that require a GitHub token are skipped automatically when no GitHub token is available - if [[ "${{matrix.modules_tool}}" =~ 'Lmod-8' ]] && [[ "${{matrix.python}}" =~ 3.[69] ]]; then + if [[ "${{matrix.modules_tool}}" =~ 'Lmod-8' ]] && [[ "${{matrix.python}}" =~ 3.9 ]]; then if [ ! -z $GITHUB_TOKEN ]; then SET_KEYRING="import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())" python -c "import keyring; $SET_KEYRING; keyring.set_password('github_token', 'easybuild_test', '$GITHUB_TOKEN')" @@ -197,9 +186,8 @@ jobs: IGNORE_PATTERNS+="|skipping SvnRepository test" IGNORE_PATTERNS+="|requires Lmod as modules tool" IGNORE_PATTERNS+="|stty: 'standard input': Inappropriate ioctl for device" - IGNORE_PATTERNS+="|CryptographyDeprecationWarning: Python 3.[567]" + IGNORE_PATTERNS+="|CryptographyDeprecationWarning: Python 3.7" IGNORE_PATTERNS+="|from cryptography.* import " - IGNORE_PATTERNS+="|CryptographyDeprecationWarning: Python 2" IGNORE_PATTERNS+="|Blowfish" IGNORE_PATTERNS+="|GC3Pie not available, skipping test" IGNORE_PATTERNS+="|CryptographyDeprecationWarning: TripleDES has been moved"