summaryrefslogtreecommitdiff
path: root/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to 'share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml')
-rw-r--r--share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml125
1 files changed, 125 insertions, 0 deletions
diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
new file mode 100644
index 0000000000..579d7b56f3
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
@@ -0,0 +1,125 @@
+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_IS_PR_PIPELINE: "True"
+
+.develop:
+ only:
+ - /^github\/develop$/
+ variables:
+ SPACK_IS_PR_PIPELINE: "False"
+
+.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
+ --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
+ artifacts:
+ paths:
+ - "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
+ 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 pipline 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