From 1246797415d5e9e3be760c1db5ce0abfca974284 Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 10:55:48 +0200 Subject: [PATCH 1/8] Added tests per EESSI version --- .github/workflows/test-software.eessi.io.yml | 39 ++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index 5f4dd0de71..50ead61e6b 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -33,7 +33,45 @@ env: # and then allow for special cases for specific architectures aarch64/a64fx: [] jobs: + check_EESSI_version_changed_files: + runs-on: ubuntu-24.04 + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Get changed files (PR) + run: | + git fetch origin ${{ github.base_ref }} + CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) + echo "changed=$CHANGED_FILES" >> $GITHUB_OUTPUT + + - name: Detect Versions + id: set-matrix + run: | + # Detect changed files + CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) + + # Default to both EESSI versions if no specific match is found + EESSI_VERSIONS='["2023.06", "2025.06"]' + + # Check for specific versions + if echo "$CHANGED_FILES" | grep -q "easystacks/software.eessi.io/2023.06"; then + EESSI_VERSIONS='["2023.06"]' + elif echo "$CHANGED_FILES" | grep -q "easystacks/software.eessi.io/2025.06"; then + EESSI_VERSIONS='["2025.06"]' + fi + + # Store detected versions as newline-separated list in output + echo "EESSI_VERSIONS<> $GITHUB_OUTPUT + echo "$EESSI_VERSIONS >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + check_missing: + needs: check_EESSI_version_changed_files strategy: fail-fast: false matrix: @@ -153,6 +191,7 @@ jobs: cvmfs_repositories: software.eessi.io - name: Check for missing installlations + if: ${{ github.event_name != 'pull_request' || contains(needs.check_EESSI_version_changed_files.outputs.EESSI_VERSIONS, matrix.EESSI_VERSION) }} run: | export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash From d7d71d7dfca702b2d29c73efa2c1bc02aff64e59 Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 10:56:41 +0200 Subject: [PATCH 2/8] Added test.eb in 2025.06 easystack file as a test case --- .../software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml index 97918e347b..36107047cb 100644 --- a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml +++ b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml @@ -18,3 +18,4 @@ easyconfigs: # - framework PR for fix: https://github.com/easybuilders/easybuild-framework/pull/5142 # - triggered by https://github.com/easybuilders/easybuild-easyblocks/pull/3993 - jupyterlmod-5.2.2-GCCcore-13.3.0.eb + - test.eb From 28661ebaac696940a5f665cf4342dffbfad4bb35 Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 11:08:32 +0200 Subject: [PATCH 3/8] Fixed logic --- .github/workflows/test-software.eessi.io.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index 50ead61e6b..298c6ae1a6 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -36,7 +36,7 @@ jobs: check_EESSI_version_changed_files: runs-on: ubuntu-24.04 outputs: - matrix: ${{ steps.set-matrix.outputs.matrix }} + EESSI_VERSIONS: ${{ steps.detect.outputs.EESSI_VERSIONS }} steps: - name: Checkout code uses: actions/checkout@v4 @@ -49,8 +49,8 @@ jobs: CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) echo "changed=$CHANGED_FILES" >> $GITHUB_OUTPUT - - name: Detect Versions - id: set-matrix + - name: Detect EESSI Versions + - id: detect run: | # Detect changed files CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) From dacc5fa766453e29321268e41fd934fc18e12dbd Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 11:39:41 +0200 Subject: [PATCH 4/8] Fixed logic --- .github/workflows/test-software.eessi.io.yml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index 298c6ae1a6..f968f63788 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -38,22 +38,17 @@ jobs: outputs: EESSI_VERSIONS: ${{ steps.detect.outputs.EESSI_VERSIONS }} steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: Check out software-layer repository + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: - fetch-depth: 0 - - - name: Get changed files (PR) - run: | - git fetch origin ${{ github.base_ref }} - CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) - echo "changed=$CHANGED_FILES" >> $GITHUB_OUTPUT + fetch-depth: 0 # Fetch all history for all branches and tags - name: Detect EESSI Versions - id: detect run: | - # Detect changed files - CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) + # Get filenames changed between the PR branch and its base (e.g., main) + changed_files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }}) + echo "files changed in the PR=$changed_files" # Default to both EESSI versions if no specific match is found EESSI_VERSIONS='["2023.06", "2025.06"]' From 62b3da2fa2430c0f6d7f79f289c1fb3000186543 Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 11:43:08 +0200 Subject: [PATCH 5/8] Fixed typo --- .github/workflows/test-software.eessi.io.yml | 25 ++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index f968f63788..dad7833594 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -44,26 +44,27 @@ jobs: fetch-depth: 0 # Fetch all history for all branches and tags - name: Detect EESSI Versions - - id: detect + id: detect run: | - # Get filenames changed between the PR branch and its base (e.g., main) - changed_files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }}) - echo "files changed in the PR=$changed_files" + # Use base_ref and head_ref for more reliable diffing in PRs + # Ensure you have checked out with fetch-depth: 0 + changed_files=$(git diff --name-only origin/${{ github.base_ref }} origin/${{ github.head_ref }}) + echo "Files changed: $changed_files" - # Default to both EESSI versions if no specific match is found + # Default to both versions EESSI_VERSIONS='["2023.06", "2025.06"]' - # Check for specific versions - if echo "$CHANGED_FILES" | grep -q "easystacks/software.eessi.io/2023.06"; then + # Check for specific versions in the multi-line string + if echo "$changed_files" | grep -q "easystacks/software.eessi.io/2023.06"; then EESSI_VERSIONS='["2023.06"]' - elif echo "$CHANGED_FILES" | grep -q "easystacks/software.eessi.io/2025.06"; then + elif echo "$changed_files" | grep -q "easystacks/software.eessi.io/2025.06"; then EESSI_VERSIONS='["2025.06"]' fi - # Store detected versions as newline-separated list in output - echo "EESSI_VERSIONS<> $GITHUB_OUTPUT - echo "$EESSI_VERSIONS >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + # Use GITHUB_OUTPUT heredoc correctly + echo "EESSI_VERSIONS<> "$GITHUB_OUTPUT" + echo "$EESSI_VERSIONS" >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" check_missing: needs: check_EESSI_version_changed_files From 8ae6e1ede9f8852ebbde332be3e911f3221679e8 Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 12:39:28 +0200 Subject: [PATCH 6/8] Added EESSI version print --- .github/workflows/test-software.eessi.io.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index dad7833594..b40910ba70 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -50,7 +50,7 @@ jobs: # Ensure you have checked out with fetch-depth: 0 changed_files=$(git diff --name-only origin/${{ github.base_ref }} origin/${{ github.head_ref }}) echo "Files changed: $changed_files" - + # Default to both versions EESSI_VERSIONS='["2023.06", "2025.06"]' @@ -60,7 +60,8 @@ jobs: elif echo "$changed_files" | grep -q "easystacks/software.eessi.io/2025.06"; then EESSI_VERSIONS='["2025.06"]' fi - + echo "PR changes related to EESSI VERSION: $EESSI_VERSIONS" + # Use GITHUB_OUTPUT heredoc correctly echo "EESSI_VERSIONS<> "$GITHUB_OUTPUT" echo "$EESSI_VERSIONS" >> "$GITHUB_OUTPUT" From 62a6804414281ff6c56102e3b7bdb82885e39e5a Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 13:31:22 +0200 Subject: [PATCH 7/8] Added test cast with no specific EESSI version --- .github/workflows/test-software.eessi.io.yml | 14 +++++++------- README.md | 2 +- .../2025.06/eessi-2025.06-eb-5.2.0-2024a.yml | 1 - 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index b40910ba70..1b71c25455 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -43,7 +43,7 @@ jobs: with: fetch-depth: 0 # Fetch all history for all branches and tags - - name: Detect EESSI Versions + - name: Detect EESSI version in modified easystack files id: detect run: | # Use base_ref and head_ref for more reliable diffing in PRs @@ -54,14 +54,14 @@ jobs: # Default to both versions EESSI_VERSIONS='["2023.06", "2025.06"]' - # Check for specific versions in the multi-line string + # Check for specific versions in the changed easystack files if echo "$changed_files" | grep -q "easystacks/software.eessi.io/2023.06"; then - EESSI_VERSIONS='["2023.06"]' + EESSI_VERSIONS="2023.06" elif echo "$changed_files" | grep -q "easystacks/software.eessi.io/2025.06"; then - EESSI_VERSIONS='["2025.06"]' + EESSI_VERSIONS="2025.06" fi - echo "PR changes related to EESSI VERSION: $EESSI_VERSIONS" - + echo "PR easystack changes related to EESSI VERSION: $EESSI_VERSIONS" + # Use GITHUB_OUTPUT heredoc correctly echo "EESSI_VERSIONS<> "$GITHUB_OUTPUT" echo "$EESSI_VERSIONS" >> "$GITHUB_OUTPUT" @@ -188,7 +188,7 @@ jobs: cvmfs_repositories: software.eessi.io - name: Check for missing installlations - if: ${{ github.event_name != 'pull_request' || contains(needs.check_EESSI_version_changed_files.outputs.EESSI_VERSIONS, matrix.EESSI_VERSION) }} + if: contains(needs.check_EESSI_version_changed_files.outputs.EESSI_VERSIONS, matrix.EESSI_VERSION) run: | export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash diff --git a/README.md b/README.md index 2d7f7d3b12..ddc9882e24 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Software layer +# SSoftware layer The software layer of the EESSI project uses [EasyBuild](https://docs.easybuild.io), [Lmod](https://lmod.readthedocs.io) and [archspec](https://archspec.readthedocs.io). diff --git a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml index 36107047cb..97918e347b 100644 --- a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml +++ b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.2.0-2024a.yml @@ -18,4 +18,3 @@ easyconfigs: # - framework PR for fix: https://github.com/easybuilders/easybuild-framework/pull/5142 # - triggered by https://github.com/easybuilders/easybuild-easyblocks/pull/3993 - jupyterlmod-5.2.2-GCCcore-13.3.0.eb - - test.eb From 57438b90d8d1f48891431fdaf5ae1d18cc0ad40d Mon Sep 17 00:00:00 2001 From: Richard Top Date: Mon, 30 Mar 2026 13:39:17 +0200 Subject: [PATCH 8/8] Skip checkmissing for none easystack changes --- .github/workflows/test-software.eessi.io.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index 1b71c25455..41c334b3cb 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -52,7 +52,7 @@ jobs: echo "Files changed: $changed_files" # Default to both versions - EESSI_VERSIONS='["2023.06", "2025.06"]' + EESSI_VERSIONS="" # Check for specific versions in the changed easystack files if echo "$changed_files" | grep -q "easystacks/software.eessi.io/2023.06"; then