From 9f548c9e4a70bc09c54c0bcb53bcc695b75d2df0 Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Tue, 21 Jan 2025 21:55:45 +0100 Subject: [PATCH 1/8] Add a workflow to concretize using the latest release of spack --- .github/scripts/concretize-latest-spack.sh | 33 ++++++++++++ .../workflows/concretize-latest-spack.yaml | 50 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100755 .github/scripts/concretize-latest-spack.sh create mode 100644 .github/workflows/concretize-latest-spack.yaml diff --git a/.github/scripts/concretize-latest-spack.sh b/.github/scripts/concretize-latest-spack.sh new file mode 100755 index 00000000..4321809d --- /dev/null +++ b/.github/scripts/concretize-latest-spack.sh @@ -0,0 +1,33 @@ +cd / +latest=$(curl -s https://api.github.com/repos/spack/spack/releases/latest | jq -r .tag_name) +echo "Latest spack release: $latest" +git clone https://github.com/spack/spack -q -b $latest +source spack/share/spack/setup-env.sh + +cd /spack +# git checkout $(cat /key4hep-spack/.latest-commit) +# source /key4hep-spack/.cherry-pick + +if [ "${{ matrix.build_type }}" = "release" ]; then + env=key4hep-release-opt +elif [ "${{ matrix.build_type }}" = "nightly" ]; then + env=key4hep-nightly-opt +else + echo "Unknown build type" + exit 1 +fi +cd /key4hep-spack/environments/${env} + +echo "=========" +echo "spack.yaml" +cat spack.yaml +echo "=========" +echo "packages.yaml" +cat packages.yaml +echo "=========" +echo "key4hep-common/packages.yaml" +cat /key4hep-spack/environments/key4hep-common/packages.yaml +echo "=========" + +spack env activate . +spack concretize diff --git a/.github/workflows/concretize-latest-spack.yaml b/.github/workflows/concretize-latest-spack.yaml new file mode 100644 index 00000000..c4bdda4b --- /dev/null +++ b/.github/workflows/concretize-latest-spack.yaml @@ -0,0 +1,50 @@ +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + concretize: + concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.image }}-${{ matrix.build_type }} + cancel-in-progress: true + strategy: + matrix: + image: [alma9, ubuntu22] + build_type: [release, nightly] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Start container + run: | + name=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]') + if [ "${{ matrix.image }}" = "alma9" ]; then + docker run --name container --privileged -v ${GITHUB_WORKSPACE}:/key4hep-spack -v ~/.cache/ccache:/root/.cache/ccache -d ghcr.io/key4hep/key4hep-images/alma9-cvmfs tail -f /dev/null + elif [ "${{ matrix.image }}" = "ubuntu22" ]; then + docker run --name container --privileged -v ${GITHUB_WORKSPACE}:/key4hep-spack -v ~/.cache/ccache:/root/.cache/ccache -d ghcr.io/key4hep/key4hep-images/ubuntu22-cvmfs tail -f /dev/null + else + echo "Unknown image" + exit 1 + fi + + - name: Setup environment and concretize + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + + export GITHUB_TOKEN=${GH_TOKEN} + + cat <<'EOF' > ${GITHUB_WORKSPACE}/script_container.sh + set -e + + /key4hep-spack/ci/concretize-latest-spack.sh + + EOF + + chmod +x ${GITHUB_WORKSPACE}/script_container.sh + + # cat ${GITHUB_WORKSPACE}/script_container.sh + + docker exec container /bin/bash -c "/mount.sh && /key4hep-spack/script_container.sh" \ No newline at end of file From 9f80c6ff956aecf3c71679e654292ddfa066178c Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Tue, 21 Jan 2025 21:56:58 +0100 Subject: [PATCH 2/8] Fix --- .github/scripts/concretize-latest-spack.sh | 1 + .github/workflows/concretize-latest-spack.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/scripts/concretize-latest-spack.sh b/.github/scripts/concretize-latest-spack.sh index 4321809d..f314cd1e 100755 --- a/.github/scripts/concretize-latest-spack.sh +++ b/.github/scripts/concretize-latest-spack.sh @@ -1,3 +1,4 @@ +source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh cd / latest=$(curl -s https://api.github.com/repos/spack/spack/releases/latest | jq -r .tag_name) echo "Latest spack release: $latest" diff --git a/.github/workflows/concretize-latest-spack.yaml b/.github/workflows/concretize-latest-spack.yaml index c4bdda4b..61ad35f4 100644 --- a/.github/workflows/concretize-latest-spack.yaml +++ b/.github/workflows/concretize-latest-spack.yaml @@ -39,7 +39,7 @@ jobs: cat <<'EOF' > ${GITHUB_WORKSPACE}/script_container.sh set -e - /key4hep-spack/ci/concretize-latest-spack.sh + /key4hep-spack/.github/scripts/concretize-latest-spack.sh EOF From e774214dcf0469ea8facf96e20eb84d149457ca6 Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Tue, 21 Jan 2025 22:15:36 +0100 Subject: [PATCH 3/8] Fix --- .github/scripts/concretize-latest-spack.sh | 4 ++-- .github/workflows/concretize-latest-spack.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/scripts/concretize-latest-spack.sh b/.github/scripts/concretize-latest-spack.sh index f314cd1e..53e78afe 100755 --- a/.github/scripts/concretize-latest-spack.sh +++ b/.github/scripts/concretize-latest-spack.sh @@ -9,9 +9,9 @@ cd /spack # git checkout $(cat /key4hep-spack/.latest-commit) # source /key4hep-spack/.cherry-pick -if [ "${{ matrix.build_type }}" = "release" ]; then +if [ "$1" = "release" ]; then env=key4hep-release-opt -elif [ "${{ matrix.build_type }}" = "nightly" ]; then +elif [ "$1" = "nightly" ]; then env=key4hep-nightly-opt else echo "Unknown build type" diff --git a/.github/workflows/concretize-latest-spack.yaml b/.github/workflows/concretize-latest-spack.yaml index 61ad35f4..24239771 100644 --- a/.github/workflows/concretize-latest-spack.yaml +++ b/.github/workflows/concretize-latest-spack.yaml @@ -39,7 +39,7 @@ jobs: cat <<'EOF' > ${GITHUB_WORKSPACE}/script_container.sh set -e - /key4hep-spack/.github/scripts/concretize-latest-spack.sh + /key4hep-spack/.github/scripts/concretize-latest-spack.sh "${{ matrix.build_type }}" EOF From 069836c74eccf56fb8d01ccdaabac65dceb3faba Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Tue, 21 Jan 2025 22:19:51 +0100 Subject: [PATCH 4/8] Fix --- .github/scripts/concretize-latest-spack.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/scripts/concretize-latest-spack.sh b/.github/scripts/concretize-latest-spack.sh index 53e78afe..a0192e7c 100755 --- a/.github/scripts/concretize-latest-spack.sh +++ b/.github/scripts/concretize-latest-spack.sh @@ -1,6 +1,5 @@ -source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh cd / -latest=$(curl -s https://api.github.com/repos/spack/spack/releases/latest | jq -r .tag_name) +latest=$(curl -s https://api.github.com/repos/OWNER/REPO/releases/latest | grep '"tag_name":' | cut -d'"' -f4) echo "Latest spack release: $latest" git clone https://github.com/spack/spack -q -b $latest source spack/share/spack/setup-env.sh From 1e44b4f2b611173674260f821fc9c57f82156b7a Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Tue, 21 Jan 2025 22:20:47 +0100 Subject: [PATCH 5/8] Fix --- .github/scripts/concretize-latest-spack.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/concretize-latest-spack.sh b/.github/scripts/concretize-latest-spack.sh index a0192e7c..51c251d7 100755 --- a/.github/scripts/concretize-latest-spack.sh +++ b/.github/scripts/concretize-latest-spack.sh @@ -1,5 +1,5 @@ cd / -latest=$(curl -s https://api.github.com/repos/OWNER/REPO/releases/latest | grep '"tag_name":' | cut -d'"' -f4) +latest=$(curl -s https://api.github.com/repos/spack/spack/releases/latest | grep '"tag_name":' | cut -d'"' -f4) echo "Latest spack release: $latest" git clone https://github.com/spack/spack -q -b $latest source spack/share/spack/setup-env.sh From 543906e4a356582f87e0590a58a454bad0a1c533 Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Wed, 22 Jan 2025 15:25:47 +0100 Subject: [PATCH 6/8] Allow passing a tag --- .github/scripts/concretize-latest-spack.sh | 10 +++++++--- .github/workflows/concretize-latest-spack.yaml | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/scripts/concretize-latest-spack.sh b/.github/scripts/concretize-latest-spack.sh index 51c251d7..549b69bc 100755 --- a/.github/scripts/concretize-latest-spack.sh +++ b/.github/scripts/concretize-latest-spack.sh @@ -1,7 +1,11 @@ cd / -latest=$(curl -s https://api.github.com/repos/spack/spack/releases/latest | grep '"tag_name":' | cut -d'"' -f4) -echo "Latest spack release: $latest" -git clone https://github.com/spack/spack -q -b $latest +if [ -z "$2" ]; then + tag=$(curl -s https://api.github.com/repos/spack/spack/releases/latest | grep '"tag_name":' | cut -d'"' -f4) +else + tag="$2" +fi +echo "Checking out the spack tag: $tag" +git clone https://github.com/spack/spack -q -b $tag source spack/share/spack/setup-env.sh cd /spack diff --git a/.github/workflows/concretize-latest-spack.yaml b/.github/workflows/concretize-latest-spack.yaml index 24239771..d37a3284 100644 --- a/.github/workflows/concretize-latest-spack.yaml +++ b/.github/workflows/concretize-latest-spack.yaml @@ -47,4 +47,4 @@ jobs: # cat ${GITHUB_WORKSPACE}/script_container.sh - docker exec container /bin/bash -c "/mount.sh && /key4hep-spack/script_container.sh" \ No newline at end of file + docker exec container /bin/bash -c "/mount.sh && /key4hep-spack/script_container.sh" From 13b30c0aefcafadd664a65a119eaad3c64c1056c Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Wed, 22 Jan 2025 15:34:41 +0100 Subject: [PATCH 7/8] Change the name to concretize-tag-spack --- .../{concretize-latest-spack.sh => concretize-tag-spack.sh} | 0 .github/workflows/concretize-latest-spack.yaml | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) rename .github/scripts/{concretize-latest-spack.sh => concretize-tag-spack.sh} (100%) diff --git a/.github/scripts/concretize-latest-spack.sh b/.github/scripts/concretize-tag-spack.sh similarity index 100% rename from .github/scripts/concretize-latest-spack.sh rename to .github/scripts/concretize-tag-spack.sh diff --git a/.github/workflows/concretize-latest-spack.yaml b/.github/workflows/concretize-latest-spack.yaml index d37a3284..cd5fa025 100644 --- a/.github/workflows/concretize-latest-spack.yaml +++ b/.github/workflows/concretize-latest-spack.yaml @@ -1,3 +1,5 @@ +name: concretize-latest-spack + on: push: branches: @@ -39,7 +41,7 @@ jobs: cat <<'EOF' > ${GITHUB_WORKSPACE}/script_container.sh set -e - /key4hep-spack/.github/scripts/concretize-latest-spack.sh "${{ matrix.build_type }}" + /key4hep-spack/.github/scripts/concretize-tag-spack.sh "${{ matrix.build_type }}" EOF From 71f028c20a39c14dd0527c633f8b1e607c36153b Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Wed, 22 Jan 2025 20:38:22 +0100 Subject: [PATCH 8/8] Change name --- .github/workflows/concretize-latest-spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/concretize-latest-spack.yaml b/.github/workflows/concretize-latest-spack.yaml index cd5fa025..a07927b4 100644 --- a/.github/workflows/concretize-latest-spack.yaml +++ b/.github/workflows/concretize-latest-spack.yaml @@ -1,4 +1,4 @@ -name: concretize-latest-spack +name: Concretize latest spack on: push: