# from Dennis: select (default) image and (default) runner
default:
  image:
    name: docker-registry.ebrains.eu/clb-jupyter-image/base
    entrypoint: [""]
  tags:
    - docker-runner

# Generate the "spack pipeline" and build it
# ECM: we could introduce generate-for-gcc in the beginning, would allow for
#      clingo usage in later generate step
#      => $ spack external find cmake bison
#      => # trigger use of clingo to get it installed
#      => $ spack solve zlib
#      => $ spack find --bootstrap

stages:
  - generate
  - build

# UHEI spack version and branch
variables:
  # ebrains_testing (was "visionary") contains bug fix for failing uid =>
  # username lookup in container
  SPACK_REPO: https://github.com/electronicvisions/spack
  SPACK_REF: ebrains_testing

generate-pipeline:
  stage: generate
  before_script:
    # clone spack and set checkout to correct ref (variable above)
    - git clone ${SPACK_REPO}
    - pushd spack && git checkout ${SPACK_REF} && git log -n 1 && popd
    - . "./spack/share/spack/setup-env.sh"
    # add system compiler
    - spack compiler find
    # print some infos about the environment
    - spack compilers
    - spack arch
    # ... system compiler is "gcc@4.8.5"
  script:
    # activate env (spack.yaml) and generate pipeline.yml for the build step
    - spack -d env activate --without-view .
    - spack -d ci generate
      --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir/"
      --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
  artifacts:
    paths:
      - "${CI_PROJECT_DIR}/jobs_scratch_dir"

build-jobs:
  stage: build
  trigger:
    include:
      - artifact: "jobs_scratch_dir/pipeline.yml"
        job: generate-pipeline
    strategy: depend
