-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
111 lines (106 loc) · 3.72 KB
/
.gitlab-ci.yml
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
stages:
- dry-run
- build
variables:
GIT_STRATEGY: fetch
GIT_SUBMODULE_STRATEGY: none
CI_RUNNTER_SYSTEM: "Darwin"
CI_SPACKAGE: "flecsalemm-deps"
SPACK_REPO: "https://github.com/spack/spack.git"
SPACK_REF: "v0.17.1-88b1bf7"
NGC_PROJECT_MODULE_DIR: "/projects/ngc/public/ristra_module_gen"
SCHEDULER_PARAMETERS: "--nodes=1 --partition=skylake-gold"
before_script:
- '[ "$(git rev-parse origin/$CI_COMMIT_REF_NAME)" != "$CI_COMMIT_SHA" ] && curl --header "PRIVATE-TOKEN: $MY_CI_API_TOKEN" -X POST https://gitlab.lanl.gov/api/v4/projects/$CI_PROJECT_ID/pipelines/$CI_PIPELINE_ID/cancel'
- export HOME=${CI_PROJECT_DIR}
- export TMPDIR=${CI_PROJECT_DIR}
- unset SPACK_ROOT
- echo ${CI_RUNNER_TAGS}
- module load gcc
dry-run:
stage: dry-run
tags:
- darwin-slurm-shared
only:
refs:
- master
- merge_requests
variables:
SPACK_ENV_DIR: "dry-run"
artifacts:
name: "ristra_spackages-${CI_COMMIT_REF_SLUG}-${CI_JOB_NAME}-${CI_JOB_ID}"
when: always
expire_in: 1 hour
paths:
- ${CI_PROJECT_DIR}/spack #/builds/next-generation-codes/laristra/flecsale-mm/spack
script:
- cd ${CI_PROJECT_DIR}
- git clone git@gitlab.lanl.gov:laristra/ristra-spack-configurations.git
- echo 'Spack Version:' ${SPACK_REF}
- git clone ${SPACK_REPO}
- cd spack && git checkout ${SPACK_REF##*-} && cd ${CI_PROJECT_DIR}
- export SPACK_ARCH=`./spack/bin/spack arch`
- echo ${SPACK_ARCH}
- export PLATFORM="${SPACK_ARCH%%-*}"
- echo ${PLATFORM}
- mkdir -p ${CI_PROJECT_DIR}/spack/etc/spack/${PLATFORM}
- cp ${CI_PROJECT_DIR}/ristra-spack-configurations/common/*.yaml ${CI_PROJECT_DIR}/spack/etc/spack/
- |
if [[ -d ${CI_PROJECT_DIR}/ristra-spack-configurations/${CI_RUNNTER_SYSTEM}/${SPACK_REF%.*} ]];
then
cp ${CI_PROJECT_DIR}/ristra-spack-configurations/${CI_RUNNTER_SYSTEM}/${SPACK_REF%.*}/*.yaml ${CI_PROJECT_DIR}/spack/etc/spack/${PLATFORM}/;
fi
# HPC mirror has cached an older version of flecsi and cinch
- ${CI_PROJECT_DIR}/spack/bin/spack mirror rm --scope site lanl
- . ${CI_PROJECT_DIR}/spack/share/spack/setup-env.sh
- spack repo add --scope site ${CI_PROJECT_DIR}/spack-repo
- spack repo list
- spack env activate -d ${CI_PROJECT_DIR}/.gitlab-ci/env/${SPACK_ENV_DIR}
- spack find
- spack compilers
- spack concretize -f
local-build:
extends: dry-run
stage: build
only:
refs:
- master
artifacts:
dependencies: [ dry-run ]
variables:
SPACK_ENV_DIR: "local-build"
script:
- cd ${CI_PROJECT_DIR}
- echo 'Spack Version:' ${SPACK_REF}
- . ${CI_PROJECT_DIR}/spack/share/spack/setup-env.sh
- spack reindex
- spack module tcl refresh -y
- spack repo list
- spack env activate -d ${CI_PROJECT_DIR}/.gitlab-ci/env/${SPACK_ENV_DIR}
- spack find
- spack compilers
- spack concretize -f
- spack install --show-log-on-error
- spack module tcl refresh -y
root-build:
extends: dry-run
stage: build
only:
refs:
- master
variables:
SPACK_ENV_DIR: "root-build"
artifacts:
script:
- cd ${NGC_PROJECT_MODULE_DIR}
- echo 'Spack Version:' ${SPACK_REF}
- ./ristra_spackages/utils/update.sh ${SPACK_REF} ${CI_RUNNTER_SYSTEM} ${CI_SPACKAGE}
- . ${NGC_PROJECT_MODULE_DIR}/spack-${SPACK_REF}/share/spack/setup-env.sh
- spack repo list
- spack env activate -d ${CI_PROJECT_DIR}/.gitlab-ci/env/${SPACK_ENV_DIR}
- spack find
- spack compilers
- spack concretize -f
- spack install --show-log-on-error --only dependencies
- ./ristra_spackages/utils/refresh.sh ${SPACK_REF} ristra_spackages/env/x86_64/${CI_SPACKAGE}
- ./ristra_spackages/utils/refresh.sh ${SPACK_REF} ${CI_PROJECT_DIR}/.gitlab-ci/env/${SPACK_ENV_DIR}