name: Spack Buildcache on: workflow_dispatch: schedule: - cron: '0 3 * * 0' # Weekly on Sunday at 3am UTC push: paths: - 'test/ci/spack-*.yaml' - '.github/workflows/buildcache.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: if: github.repository == 'FairRootGroup/FairMQ' name: ${{ matrix.env }}-gcc-${{ matrix.gcc }} runs-on: ubuntu-latest permissions: packages: write strategy: fail-fast: false matrix: gcc: ['12', '13', '14', '15'] env: ['latest'] include: - gcc: '15' env: 'boost187' steps: - uses: actions/checkout@v4 - name: Install dependencies uses: ./.github/actions/setup-deps with: gcc: ${{ matrix.gcc }} env: ${{ matrix.env }} fresh: 'true' - name: Push to buildcache if: ${{ !cancelled() }} shell: spack-bash {0} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | spack -e fairmq mirror set --oci-username ${{ github.actor }} --oci-password-variable GITHUB_TOKEN ghcr-buildcache spack -e fairmq buildcache push --unsigned ghcr-buildcache update-index: if: github.repository == 'FairRootGroup/FairMQ' && !cancelled() needs: build runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} permissions: packages: write steps: - uses: actions/checkout@v4 - name: Setup spack uses: spack/setup-spack@v2 with: ref: v1.1.0 color: true - name: Update buildcache index shell: spack-bash {0} run: | spack env create fairmq test/ci/spack-latest.yaml spack -e fairmq mirror set --oci-username ${{ github.actor }} --oci-password-variable GITHUB_TOKEN ghcr-buildcache spack -e fairmq buildcache update-index ghcr-buildcache