diff --git a/.github/ci/spack-envs/clang14_py311_nompi_h5_ad2/spack.yaml b/.github/ci/spack-envs/clang14_py311_nompi_h5_ad2/spack.yaml index 08bbe79f00..57b52fc8ff 100644 --- a/.github/ci/spack-envs/clang14_py311_nompi_h5_ad2/spack.yaml +++ b/.github/ci/spack-envs/clang14_py311_nompi_h5_ad2/spack.yaml @@ -17,7 +17,7 @@ spack: cmake: externals: - spec: cmake@3.22.1 - prefix: /usr + prefix: /usr/local buildable: False perl: externals: diff --git a/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2/spack.yaml b/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2/spack.yaml index 9baf1d3151..78795610c1 100644 --- a/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2/spack.yaml +++ b/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2/spack.yaml @@ -12,11 +12,11 @@ spack: packages: adios2: - variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 ~blosc2 + variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 ~mgard ~blosc2 cmake: externals: - spec: cmake@3.23.0 - prefix: /usr + prefix: /usr/local buildable: False openmpi: externals: @@ -60,3 +60,6 @@ spack: mirrors: E4S: https://cache.e4s.io + local-buildcache: + url: oci://ghcr.io/openPMD/spack-buildcache + signed: false diff --git a/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2_libcpp/spack.yaml b/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2_libcpp/spack.yaml index 0785e5c4b6..332ce831da 100644 --- a/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2_libcpp/spack.yaml +++ b/.github/ci/spack-envs/clang7_nopy_ompi_h5_ad2_libcpp/spack.yaml @@ -16,7 +16,7 @@ spack: cmake: externals: - spec: cmake@3.23.0 - prefix: /usr + prefix: /usr/local buildable: False openmpi: externals: diff --git a/.github/ci/spack-envs/clang8_py38_mpich_h5_ad2/spack.yaml b/.github/ci/spack-envs/clang8_py38_mpich_h5_ad2/spack.yaml index 81e3155f8f..5ec5ed488c 100644 --- a/.github/ci/spack-envs/clang8_py38_mpich_h5_ad2/spack.yaml +++ b/.github/ci/spack-envs/clang8_py38_mpich_h5_ad2/spack.yaml @@ -12,11 +12,11 @@ spack: packages: adios2: - variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 ~blosc2 + variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 ~mgard ~blosc2 cmake: externals: - spec: cmake@3.23.0 - prefix: /usr + prefix: /usr/local buildable: False mpich: externals: diff --git a/.github/ci/spack-envs/clangtidy_nopy_ompi_h5_ad2/spack.yaml b/.github/ci/spack-envs/clangtidy_nopy_ompi_h5_ad2/spack.yaml index ebe5acb1bd..de1740f8ca 100644 --- a/.github/ci/spack-envs/clangtidy_nopy_ompi_h5_ad2/spack.yaml +++ b/.github/ci/spack-envs/clangtidy_nopy_ompi_h5_ad2/spack.yaml @@ -12,11 +12,11 @@ spack: packages: adios2: - variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 + variants: ~mgard ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 cmake: externals: - spec: cmake@3.23.0 - prefix: /usr + prefix: /usr/local buildable: False openmpi: externals: diff --git a/.github/ci/spack-envs/gcc7_py36_ompi_h5_ad2/spack.yaml b/.github/ci/spack-envs/gcc7_py36_ompi_h5_ad2/spack.yaml index 6e528c5ddb..fc359f2c45 100644 --- a/.github/ci/spack-envs/gcc7_py36_ompi_h5_ad2/spack.yaml +++ b/.github/ci/spack-envs/gcc7_py36_ompi_h5_ad2/spack.yaml @@ -12,11 +12,11 @@ spack: packages: adios2: - variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 + variants: ~mgard ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 cmake: externals: - spec: cmake@3.23.0 - prefix: /usr + prefix: /usr/local buildable: False openmpi: externals: diff --git a/.github/ci/spack-envs/gcc_py_ompi_h5_ad2_arm64/spack.yaml b/.github/ci/spack-envs/gcc_py_ompi_h5_ad2_arm64/spack.yaml index 7f051faa79..c113af0d2c 100644 --- a/.github/ci/spack-envs/gcc_py_ompi_h5_ad2_arm64/spack.yaml +++ b/.github/ci/spack-envs/gcc_py_ompi_h5_ad2_arm64/spack.yaml @@ -6,17 +6,17 @@ # spack: specs: - - adios2 + - adios2@2.10 - hdf5 - openmpi packages: adios2: - variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 + variants: ~mgard ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 cmake: externals: - spec: cmake@3.22.1 - prefix: /usr + prefix: /usr/local buildable: False libfabric: externals: diff --git a/.github/workflows/dependencies/install_spack b/.github/workflows/dependencies/install_spack index 7a45620503..05f80cdde2 100755 --- a/.github/workflows/dependencies/install_spack +++ b/.github/workflows/dependencies/install_spack @@ -3,7 +3,7 @@ set -eu -o pipefail -spack_ver="0.22.3" +spack_ver="0.23.0" cd /opt if [[ -d spack && ! -f spack_${spack_ver} ]] diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 53daa723c7..842ccf2cfb 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -86,6 +86,8 @@ jobs: clang7_nopy_ompi_h5_ad2: runs-on: ubuntu-20.04 + permissions: + packages: write if: github.event.pull_request.draft == false steps: - uses: actions/checkout@v4 @@ -96,13 +98,20 @@ jobs: run: | sudo apt-get update sudo apt-get install clang-7 gfortran libopenmpi-dev python3 - sudo .github/workflows/dependencies/install_spack + - name: Set up Spack + uses: spack/setup-spack@v2 + with: + ref: v0.23.0 + buildcache: true + color: true + path: opt/spack - name: Build env: {CC: clang-7, CXX: clang++-7, CXXFLAGS: -Werror} + shell: spack-bash {0} run: | sudo ln -s "$(which cmake)" /usr/bin/cmake eval $(spack env activate --sh .github/ci/spack-envs/clang7_nopy_ompi_h5_ad2/) - spack install + spack install --no-check-signature share/openPMD/download_samples.sh build cmake -S . -B build \ @@ -116,6 +125,12 @@ jobs: cd build ctest --output-on-failure + - name: Push packages and update index + run: | + spack -e . mirror set --push --oci-username ${{ github.actor }} --oci-password "${{ secrets.GITHUB_TOKEN }}" local-buildcache + spack -e . buildcache push --base-image ubuntu:20.04 --update-index local-buildcache + if: ${{ !cancelled() }} + # TODO # clang7_py36_nompi_h5_ad2_libstdc++ diff --git a/.github/workflows/tooling.yml b/.github/workflows/tooling.yml index 4f4ed5e377..91da948356 100644 --- a/.github/workflows/tooling.yml +++ b/.github/workflows/tooling.yml @@ -20,6 +20,9 @@ jobs: run: | sudo apt-get update sudo apt-get install clang clang-tidy gfortran libopenmpi-dev python + + which cmake + sudo .github/workflows/dependencies/install_spack - name: Build env: {CC: clang, CXX: clang++}