From 8611ca692ee158f7bf53bef9303f8be46ef5a7ed Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Aug 2022 16:05:52 +0200 Subject: [PATCH 1/8] update CI workflows to use Ubuntu 20.04 (since Ubuntu 18.04 is deprecated) --- .github/workflows/bootstrap_script.yml | 4 ++-- .github/workflows/container_tests.yml | 2 +- .github/workflows/eb_command.yml | 2 +- .github/workflows/linting.yml | 2 +- .github/workflows/unit_tests.yml | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bootstrap_script.yml b/.github/workflows/bootstrap_script.yml index 3c1f522965..f422fece6d 100644 --- a/.github/workflows/bootstrap_script.yml +++ b/.github/workflows/bootstrap_script.yml @@ -3,7 +3,7 @@ name: test EasyBuild bootstrap script on: [push, pull_request] jobs: setup: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 outputs: lmod7: Lmod-7.8.22 lmod8: Lmod-8.7.6 @@ -14,7 +14,7 @@ jobs: - run: "true" build: needs: setup - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: # Don't run for Python 3.8, 3.9 , people should just use `pip install easybuild` diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index af3835fb84..8ea249f005 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: build: # stick to Ubuntu 18.04, where we can still easily install yum via 'apt-get install' - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: python: [2.7, 3.6] diff --git a/.github/workflows/eb_command.yml b/.github/workflows/eb_command.yml index 078d520717..65fb76baa4 100644 --- a/.github/workflows/eb_command.yml +++ b/.github/workflows/eb_command.yml @@ -3,7 +3,7 @@ name: Tests for the 'eb' command on: [push, pull_request] jobs: test-eb: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: python: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, '3.10'] diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index becc9cc1cd..f22011ba88 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -2,7 +2,7 @@ name: Static Analysis on: [push, pull_request] jobs: python-linting: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, '3.10'] diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index e60826adbb..b92cfff6a8 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -3,7 +3,7 @@ name: EasyBuild framework unit tests on: [push, pull_request] jobs: setup: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 outputs: lmod7: Lmod-7.8.22 lmod8: Lmod-8.7.6 @@ -14,7 +14,7 @@ jobs: - run: "true" build: needs: setup - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: python: [2.7, 3.6] From 5877933b287883a8589fc8c4f4c39ffe1cb6bd1e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Aug 2022 16:21:56 +0200 Subject: [PATCH 2/8] switch to dnf rather than yum when testing container support on Ubuntu 20.04 --- .github/workflows/container_tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index 8ea249f005..02e31041f7 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -3,7 +3,6 @@ name: Tests for container support on: [push, pull_request] jobs: build: - # stick to Ubuntu 18.04, where we can still easily install yum via 'apt-get install' runs-on: ubuntu-20.04 strategy: matrix: @@ -24,7 +23,7 @@ jobs: sudo apt-get update -yqq # for building Singularity images sudo apt-get install rpm - sudo apt-get install yum + sudo apt-get install dnf # for modules tool sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev # fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 From ef8d2d07a941e6f3b344b9457fdedfeaef805183 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Aug 2022 17:01:13 +0200 Subject: [PATCH 3/8] use Ubuntu 22.04 for container tests, since dnf is only available since Ubuntu 21.04 --- .github/workflows/container_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index 02e31041f7..abcffb5a07 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -3,7 +3,7 @@ name: Tests for container support on: [push, pull_request] jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: python: [2.7, 3.6] From f4ae454f17e0518351b07d7e764f7cdeedab8b77 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Aug 2022 19:34:30 +0200 Subject: [PATCH 4/8] run CI tests for container support only with Python 3.7-3.10 --- .github/workflows/container_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index abcffb5a07..4eed10b612 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - python: [2.7, 3.6] + python: [3.7, 3.8, 3.9, '3.10'] fail-fast: false steps: - uses: actions/checkout@v2 From 8b3fd4dfbcc5b4b6aa7378577ea8be41cc478ddb Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Aug 2022 19:47:14 +0200 Subject: [PATCH 5/8] show contents of $HOME/.rpmmacros in CI workflow for container tests --- .github/workflows/container_tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index 4eed10b612..f8f8a3b435 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -84,6 +84,9 @@ jobs: # create $HOME/.rpmmacros, see also https://github.com/apptainer/singularity/issues/241 echo '%_var /var' > $HOME/.rpmmacros echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros + ls -ld $HOME/.rpmmacros + echo "contents of $HOME/.rpmmacros:" + cat $HOME/.rpmmacros # build CentOS 7 container image for bzip2 1.0.8 using EasyBuild; # see https://docs.easybuild.io/en/latest/Containers.html curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb From 7eceed9448f8e0b03aad38d3eea768cf6de8c6cc Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 22 Aug 2022 20:03:27 +0200 Subject: [PATCH 6/8] also create /root/.rpmmacros in CI workflow for container tests --- .github/workflows/container_tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index f8f8a3b435..1c05a9e313 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -87,6 +87,8 @@ jobs: ls -ld $HOME/.rpmmacros echo "contents of $HOME/.rpmmacros:" cat $HOME/.rpmmacros + sudo echo '%_var /var' > /root/.rpmmacros + sudo echo '%_dbpath %{_var}/lib/rpm' >> /root/.rpmmacros # build CentOS 7 container image for bzip2 1.0.8 using EasyBuild; # see https://docs.easybuild.io/en/latest/Containers.html curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb From 4ec274f2c4e305c48e42e74e125c6ae7cd0c4011 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Wed, 7 Sep 2022 19:05:03 +0200 Subject: [PATCH 7/8] revert changes to workflow for container tests, stick to Ubuntu 18.04 there for now --- .github/workflows/container_tests.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index 1c05a9e313..af3835fb84 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -3,10 +3,11 @@ name: Tests for container support on: [push, pull_request] jobs: build: - runs-on: ubuntu-22.04 + # stick to Ubuntu 18.04, where we can still easily install yum via 'apt-get install' + runs-on: ubuntu-18.04 strategy: matrix: - python: [3.7, 3.8, 3.9, '3.10'] + python: [2.7, 3.6] fail-fast: false steps: - uses: actions/checkout@v2 @@ -23,7 +24,7 @@ jobs: sudo apt-get update -yqq # for building Singularity images sudo apt-get install rpm - sudo apt-get install dnf + sudo apt-get install yum # for modules tool sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev # fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082 @@ -84,11 +85,6 @@ jobs: # create $HOME/.rpmmacros, see also https://github.com/apptainer/singularity/issues/241 echo '%_var /var' > $HOME/.rpmmacros echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros - ls -ld $HOME/.rpmmacros - echo "contents of $HOME/.rpmmacros:" - cat $HOME/.rpmmacros - sudo echo '%_var /var' > /root/.rpmmacros - sudo echo '%_dbpath %{_var}/lib/rpm' >> /root/.rpmmacros # build CentOS 7 container image for bzip2 1.0.8 using EasyBuild; # see https://docs.easybuild.io/en/latest/Containers.html curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb From 264b31f2141b0a6b57834c2d443dba9a05ea796d Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 8 Sep 2022 08:48:05 +0200 Subject: [PATCH 8/8] use 'apt' rather than 'apt-get' in CI workflows --- .github/workflows/bootstrap_script.yml | 6 +++--- .github/workflows/container_tests.yml | 12 ++++++------ .github/workflows/eb_command.yml | 2 +- .github/workflows/unit_tests.yml | 10 +++++----- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/bootstrap_script.yml b/.github/workflows/bootstrap_script.yml index f422fece6d..e8d4bce985 100644 --- a/.github/workflows/bootstrap_script.yml +++ b/.github/workflows/bootstrap_script.yml @@ -64,11 +64,11 @@ jobs: - name: install OS & Python packages run: | - # disable apt-get update, we don't really need it, + # disable apt update, we don't really need it, # and it does more harm than good (it's fairly expensive, and it results in flaky test runs) - # sudo apt-get update + # sudo apt update # for modules tool - sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev + sudo apt install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev # 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 diff --git a/.github/workflows/container_tests.yml b/.github/workflows/container_tests.yml index af3835fb84..6e4e080cee 100644 --- a/.github/workflows/container_tests.yml +++ b/.github/workflows/container_tests.yml @@ -3,7 +3,7 @@ name: Tests for container support on: [push, pull_request] jobs: build: - # stick to Ubuntu 18.04, where we can still easily install yum via 'apt-get install' + # stick to Ubuntu 18.04, where we can still easily install yum via 'apt install' runs-on: ubuntu-18.04 strategy: matrix: @@ -21,12 +21,12 @@ jobs: - name: install OS & Python packages run: | # ensure package list is up to date to avoid 404's for old packages - sudo apt-get update -yqq + sudo apt update -yqq # for building Singularity images - sudo apt-get install rpm - sudo apt-get install yum + sudo apt install rpm + sudo apt install yum # for modules tool - sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev + sudo apt install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev # 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 @@ -49,7 +49,7 @@ jobs: - name: install Singularity run: | # install alien, which can be used to convert RPMs to Debian packages - sudo apt-get install alien + sudo apt install alien alien --version # determine latest version of Singularity available in EPEL, and download RPM singularity_rpm=$(curl -sL https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/s/ | grep singularity | sed 's/.*singularity/singularity/g' | sed 's/rpm.*/rpm/g') diff --git a/.github/workflows/eb_command.yml b/.github/workflows/eb_command.yml index 65fb76baa4..8fa5cfb1fc 100644 --- a/.github/workflows/eb_command.yml +++ b/.github/workflows/eb_command.yml @@ -25,7 +25,7 @@ jobs: pip install --upgrade pip pip --version # install packages required for modules tool - sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev + sudo apt install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev # 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 diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index b92cfff6a8..1795f076c1 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -86,20 +86,20 @@ jobs: - name: install OS & Python packages run: | - # disable apt-get update, we don't really need it, + # disable apt update, we don't really need it, # and it does more harm than good (it's fairly expensive, and it results in flaky test runs) - # sudo apt-get update + # sudo apt update # for modules tool - sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev + sudo apt install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev # 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 # for GitPython, python-hglib - sudo apt-get install git mercurial + sudo apt install git mercurial # dep for GC3Pie - sudo apt-get install time + sudo apt install time # Python packages pip --version pip install --upgrade pip