224 lines
6.1 KiB
YAML
224 lines
6.1 KiB
YAML
stages: [ "generate", "build" ]
|
|
|
|
default:
|
|
image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] }
|
|
|
|
########################################
|
|
# Job templates
|
|
########################################
|
|
|
|
.pr:
|
|
only:
|
|
- /^github\/pr[\d]+_.*$/
|
|
variables:
|
|
SPACK_PR_BRANCH: ${CI_COMMIT_REF_NAME}
|
|
SPACK_PIPELINE_TYPE: "spack_pull_request"
|
|
|
|
.develop:
|
|
only:
|
|
- /^github\/develop$/
|
|
variables:
|
|
SPACK_PIPELINE_TYPE: "spack_protected_branch"
|
|
|
|
.generate:
|
|
stage: generate
|
|
script:
|
|
- . "./share/spack/setup-env.sh"
|
|
- spack --version
|
|
- cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
|
|
- spack env activate --without-view .
|
|
- spack ci generate --check-index-only
|
|
--artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
|
|
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
|
|
artifacts:
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
|
|
tags: ["spack", "public", "medium", "x86_64"]
|
|
interruptible: true
|
|
|
|
.pr-generate:
|
|
extends: [ ".pr", ".generate" ]
|
|
|
|
.develop-generate:
|
|
extends: [ ".develop", ".generate" ]
|
|
|
|
.build:
|
|
stage: build
|
|
|
|
.pr-build:
|
|
extends: [ ".pr", ".build" ]
|
|
variables:
|
|
AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
|
|
AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
|
|
|
|
.develop-build:
|
|
extends: [ ".develop", ".build" ]
|
|
variables:
|
|
AWS_ACCESS_KEY_ID: ${MIRRORS_AWS_ACCESS_KEY_ID}
|
|
AWS_SECRET_ACCESS_KEY: ${MIRRORS_AWS_SECRET_ACCESS_KEY}
|
|
SPACK_SIGNING_KEY: ${PACKAGE_SIGNING_KEY}
|
|
|
|
########################################
|
|
# TEMPLATE FOR ADDING ANOTHER PIPELINE
|
|
########################################
|
|
#
|
|
# First add a new spack.yml defining the pipeline to run in
|
|
# share/spack/gitlab/cloud_pipelines/stacks/my-super-cool-stack/spack.yaml
|
|
#
|
|
# Then add the following entries at the bottom of this file:
|
|
#
|
|
########################################
|
|
# My Super Cool Pipeline
|
|
########################################
|
|
# .my-super-cool-stack:
|
|
# variables:
|
|
# SPACK_CI_STACK_NAME: my-super-cool-stack
|
|
#
|
|
# my-super-cool-stack-pr-generate:
|
|
# extends: [ ".my-super-cool-stack", ".pr-generate"]
|
|
#
|
|
# my-super-cool-stack-develop-generate:
|
|
# extends: [ ".my-super-cool-stack", ".develop-generate"]
|
|
#
|
|
# my-super-cool-stack-pr-build:
|
|
# extends: [ ".my-super-cool-stack", ".pr-build" ]
|
|
# trigger:
|
|
# include:
|
|
# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
# job: my-super-cool-stack-pr-generate
|
|
# strategy: depend
|
|
#
|
|
# my-super-cool-stack-develop-build:
|
|
# extends: [ ".my-super-cool-stack", ".develop-build" ]
|
|
# trigger:
|
|
# include:
|
|
# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
# job: my-super-cool-stack-develop-generate
|
|
# strategy: depend
|
|
|
|
########################################
|
|
# E4S pipeline
|
|
########################################
|
|
.e4s:
|
|
variables:
|
|
SPACK_CI_STACK_NAME: e4s
|
|
|
|
e4s-pr-generate:
|
|
extends: [ ".e4s", ".pr-generate"]
|
|
|
|
e4s-develop-generate:
|
|
extends: [ ".e4s", ".develop-generate"]
|
|
|
|
e4s-pr-build:
|
|
extends: [ ".e4s", ".pr-build" ]
|
|
trigger:
|
|
include:
|
|
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
job: e4s-pr-generate
|
|
strategy: depend
|
|
|
|
e4s-develop-build:
|
|
extends: [ ".e4s", ".develop-build" ]
|
|
trigger:
|
|
include:
|
|
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
job: e4s-develop-generate
|
|
strategy: depend
|
|
|
|
########################################
|
|
# E4S on Power
|
|
########################################
|
|
.power-e4s-generate-tags-and-image:
|
|
image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] }
|
|
tags: ["spack", "public", "medium", "ppc64le"]
|
|
|
|
.e4s-on-power:
|
|
variables:
|
|
SPACK_CI_STACK_NAME: e4s-on-power
|
|
|
|
# e4s-on-power-pr-generate:
|
|
# extends: [ ".e4s-on-power", ".pr-generate", ".power-e4s-generate-tags-and-image"]
|
|
|
|
# e4s-on-power-develop-generate:
|
|
# extends: [ ".e4s-on-power", ".develop-generate", ".power-e4s-generate-tags-and-image"]
|
|
|
|
# e4s-on-power-pr-build:
|
|
# extends: [ ".e4s-on-power", ".pr-build" ]
|
|
# trigger:
|
|
# include:
|
|
# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
# job: e4s-on-power-pr-generate
|
|
# strategy: depend
|
|
|
|
# e4s-on-power-develop-build:
|
|
# extends: [ ".e4s-on-power", ".develop-build" ]
|
|
# trigger:
|
|
# include:
|
|
# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
# job: e4s-on-power-develop-generate
|
|
# strategy: depend
|
|
|
|
#########################################
|
|
# Build tests for different build-systems
|
|
#########################################
|
|
.build_systems:
|
|
variables:
|
|
SPACK_CI_STACK_NAME: build_systems
|
|
|
|
build_systems-pr-generate:
|
|
extends: [ ".build_systems", ".pr-generate"]
|
|
|
|
build_systems-develop-generate:
|
|
extends: [ ".build_systems", ".develop-generate"]
|
|
|
|
build_systems-pr-build:
|
|
extends: [ ".build_systems", ".pr-build" ]
|
|
trigger:
|
|
include:
|
|
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
job: build_systems-pr-generate
|
|
strategy: depend
|
|
|
|
build_systems-develop-build:
|
|
extends: [ ".build_systems", ".develop-build" ]
|
|
trigger:
|
|
include:
|
|
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
job: build_systems-develop-generate
|
|
strategy: depend
|
|
|
|
#########################################
|
|
# RADIUSS
|
|
#########################################
|
|
.radiuss:
|
|
variables:
|
|
SPACK_CI_STACK_NAME: radiuss
|
|
|
|
.radiuss-generate:
|
|
extends: [ ".radiuss"]
|
|
image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] }
|
|
|
|
# --------- PRs ---------
|
|
radiuss-pr-generate:
|
|
extends: [ ".radiuss-generate", ".pr-generate" ]
|
|
|
|
radiuss-pr-build:
|
|
extends: [ ".radiuss", ".pr-build" ]
|
|
trigger:
|
|
include:
|
|
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
job: radiuss-pr-generate
|
|
strategy: depend
|
|
|
|
# --------- Develop ---------
|
|
radiuss-develop-generate:
|
|
extends: [ ".radiuss-generate", ".develop-generate" ]
|
|
|
|
radiuss-develop-build:
|
|
extends: [ ".radiuss", ".develop-build" ]
|
|
trigger:
|
|
include:
|
|
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
|
|
job: radiuss-develop-generate
|
|
strategy: depend
|