Skip to content
Snippets Groups Projects
.gitlab-ci.yml 6.22 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
  CI_DATA_LT: "/work/scitas-ge/richart/ci"
  CI_DATA_ST: "/scratch/richart/ci"

.parallel_definition:
  parallel:
    matrix:
      # - environment: [jed]
      #   slurm_options: ["-c 72 -p jed -q jed"]
      #   stack: ["pinot-noir"]
      #   app_image: ["registry.c4science.ch/scitas-stack/rhel9-kuma"]
      # - environment: [helvetios]
      #   slurm_options: ["-c 36"]
      #   stack: ["pinot-noir"]
      #   app_image: ["registry.c4science.ch/scitas-stack/rhel9-kuma"]
      - environment: [kuma-h100]
        slurm_options: ["-c 64"]
        stack: ["pinot-noir"]
        apptainer_options: ['--nv']
        app_image: ["registry.c4science.ch/scitas-stack/rhel9-kuma"]
      - environment: [kuma-l40s]
        slurm_options: ["-c 64"]
        stack: ["pinot-noir"]
        apptainer_options: ['--nv']
        app_image: ["registry.c4science.ch/scitas-stack/rhel9-kuma"]
      # - environment: [izar]
      #   slurm_options: ['-c 40 --gpus 2']
      #   apptainer_options: ['-nv']
      #   stack: ["pinot-noir"]
  tags:
    - ${environment}
    - stack
  variables:
    environment: ${environment}
  image: ${app_image}
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
.squashfs_var:
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      variables:
        SQUASHFS_ID: ${CI_MERGE_REQUEST_IID}
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      variables:
        SQUASHFS_ID: ${CI_COMMIT_BRANCH}

.parallel_job:
  extends:
    - .parallel_definition
    - .squashfs_var
  variables:
    MOUNT_POINT: $(jq -Mrc .stack.mount_point ${CI_PROJECT_DIR}/stacks/${stack}/config.json)