Revision eb5427810c316436dec51a9a1197315927f8d603 authored by Lars Bilke on 01 June 2023, 09:47:14 UTC, committed by Lars Bilke on 01 June 2023, 10:32:38 UTC
1 parent 063b043
Raw File
.gitlab-ci.yml
stages:
  - build
  - release
  - deploy

variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
  BUILDKIT_PROGRESS: "plain"
  CPU_TARGET: ivybridge
  OGSCM_ARGUMENTS:
    value: "compiler.py ogs.py --ogs ogs/ogs@master"
    description: "Arguments to ogscm. -B -C -R --ccache are always passed automatically. For more args see README.md!"
  CMAKE_OPTIONS:
    value: "-DOGS_CPU_ARCHITECTURE=OFF -DBUILD_TESTING=OFF"
    description: "CMake options"

dev images:
  tags: ["envinf23", "shell"]
  stage: build
  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - if: $CI_PIPELINE_SOURCE == "web"
      when: never
    - if: $CI_COMMIT_BRANCH == "main"
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - black --check ogscm
    - poetry install
    - poetry run ogscm compiler.py ogs.py -B --ogs off --cpu-target $CPU_TARGET
    - poetry run ogscm compiler.py ogs.py ogs_jupyter.py -B -R --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --cpu-target $CPU_TARGET --cmake_args ' -DOGS_CPU_ARCHITECTURE=OFF -DOGS_BUILD_TESTING=OFF -DOGS_BUILD_PROCESSES=SteadyStateDiffusion' --runtime_base_image 'registry.opengeosys.org/ogs/ogs/jupyter/base-notebook-ubuntu:22.04_3.10'

release:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - echo 'Running release job.'
  release:
    tag_name: "$CI_COMMIT_TAG"
    description: "Created using the GitLab release-cli."

publish:
  tags: ["shell"]
  stage: deploy
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - poetry install
    - poetry build
    - poetry publish -u $PYPI_USERNAME -p $PYPI_PASSWORD

manual build:
  tags: ["envinf2-shell"]
  stage: build
  rules:
    - if: $CI_PIPELINE_SOURCE != "web"
      when: never
    - if: $CI_COMMIT_BRANCH
  script:
    - poetry install
    - eval poetry run ogscm ${OGSCM_ARGUMENTS}  --cmake_args \" ${CMAKE_OPTIONS}\" -B -C -R --ccache --cpu-target ${CPU_TARGET}
  artifacts:
    paths:
      - _out/images/*.sif
    expire_in: 1 week
  cache:
    paths:
      - .venv
back to top