forked from spack/github-actions-buildcache
-
Notifications
You must be signed in to change notification settings - Fork 0
63 lines (53 loc) · 1.86 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
name: Spack buildcache build
on:
workflow_call:
push:
branches:
- main
workflow_dispatch:
inputs:
fresh:
type: boolean
description: Create a fresh buildcache
default: false
env:
SPACK_BACKTRACE: please
SPACK_REF: b78c5175823910bc1f57e59a07d0b8c636e3f02d # develop-2024-12-22
jobs:
rebuild:
runs-on: ubuntu-22.04
permissions:
packages: write
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Setup Spack
uses: spack/setup-spack@5792f7c7055c3707819380b5e3831d2be6e64b6c # 2024/12
with:
ref: ${{env.SPACK_REF}}
buildcache: true
color: true
- name: Find compilers
run: spack -e . compiler find --mixed-toolchain
- name: Set buildcache
run: |
spack mirror add --unsigned upstream oci://ghcr.io/spack/github-actions-buildcache
spack mirror add --unsigned celer-buildcache oci://ghcr.io/celeritas-project/spack-gha-buildcache
- name: Concretize (fresh)
run: spack -e . -v concretize --fresh
if: ${{ github.event.inputs.name == 'true' }}
- name: Concretize (reuse)
run: spack -e . -v concretize
if: ${{ github.event.inputs.name == 'false' || github.event_name != 'workflow_dispatch' }}
- name: Install
run: |
spack -e . env depfile -o Makefile
make -Orecurse -j $(($(nproc) + 1)) SPACK_INSTALL_FLAGS=--no-check-signature
- name: Push packages and update index
env:
GITHUB_USER: ${{github.actor}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |
spack mirror set --push --oci-username-variable GITHUB_USER --oci-password-variable GITHUB_TOKEN celer-buildcache
spack -e . buildcache push -j $(($(nproc) + 1)) --base-image ubuntu:22.04 --update-index celer-buildcache
if: ${{ !cancelled() }}