Skip to content
Snippets Groups Projects
.gitlab-ci.yml 4.05 KiB
# yaml-language-server: $schema=gitlab-ci
# yaml-language-server: $format.enable=false

stages:
  - environment
  - compilers
  - concretize
  - install
  - deploy

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

variables:
  TERM: ansi

.parallel_definition:
  image: registry.c4science.ch/scitas-stack/rhel:9.3
  parallel:
    matrix:
      - environment: [jed]
        slurm_options: ["-c 72 -p jed -q jed"]
        stack: ["pinot-noir"]
      # - environment: [izar]
      #   slurm_options: ['-c 40 --gres gpu:2']
      #   apptainer_options: ['-nv']
      # - environment: [helvetios]
      #   slurm_options: ["-c 36"]
      #   stack: ["pinot-noir"]
  tags:
    - ${environment}
    - stack

# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
.parallel_job:
  extends:
    - .parallel_definition
  variables:
    COMMAND_OPTIONS_SBATCH: ${slurm_options}
    STACK_CONFIG: ${CI_PROJECT_DIR}/stacks/${stack}/config.json
    MOUNT_POINT: /stack
    APPTAINER_EXEC_OPTIONS: ${apptainer_options} --bind ${BUILDCACHE}:/buildcache:rw --bind ${CI_PROJECT_DIR}:${MOUNT_POINT}
    SPACK_USER_CACHE_PATH: "/tmp/spack_cache_${CI_JOB_ID}"
    SPACK_USER_CONFIG_PATH: "/tmp/spack_user_${CI_JOB_ID}"
    BUILDCACHE: "/work/scitas-ge/richart/ci/buildcache"

.spack_cache:
  cache:
    key: ${environment}-spack-cache
    policy: pull-push
    paths:
      - ${stack}

# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
spack:checkout:
  stage: .pre
  extends:
    - .parallel_definition
  before_script:
    - git config --global --add --bool advice.detachedHead false
  script:
    - ls
  timeout: 1h