Skip to content
.gitlab-ci.yml 1.31 KiB
Newer Older
Bengfort's avatar
Bengfort committed
stages:
  - test
  - build

variables:
  DEBIAN_FRONTEND: noninteractive
  PYTHON_IMAGE_DEPENDENCIES: "python3-pip python3-psycopg2"
  CONTAINER_IMAGE: registry.git.mpib-berlin.mpg.de/castellum/castellum_scheduler
Bengfort's avatar
Bengfort committed

test:
Bengfort's avatar
Bengfort committed
  stage: test
  image: buildpack-deps
  before_script:
Bengfort's avatar
Bengfort committed
    - apt-get update -q && apt-get install -y -qq $PYTHON_IMAGE_DEPENDENCIES
Bengfort's avatar
Bengfort committed
    - pip3 install -e .[test]
  script:
Bengfort's avatar
Bengfort committed
    - flake8
    - django-admin makemigrations --dry-run --check --noinput --settings=scheduler.settings.development
Bengfort's avatar
Bengfort committed
    - django-admin test --settings=scheduler.settings.development
Bengfort's avatar
Bengfort committed

build:
  stage: build
  image: docker
  services:
    - docker:dind
  before_script:
Bengfort's avatar
Bengfort committed
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.git.mpib-berlin.mpg.de
    - docker pull $CONTAINER_IMAGE:latest
Bengfort's avatar
Bengfort committed
  script:
    - docker build --cache-from $CONTAINER_IMAGE:latest -t $CONTAINER_IMAGE:$CI_COMMIT_REF_NAME .
  after_script:
    - >
      if [ "$CI_COMMIT_REF_NAME" == "main" ]; then
        docker tag $CONTAINER_IMAGE:$CI_COMMIT_REF_NAME $CONTAINER_IMAGE:latest
        docker push $CONTAINER_IMAGE:latest
      fi
    - >
      if [ -n "$CI_COMMIT_TAG" ]; then
        docker tag $CONTAINER_IMAGE:$CI_COMMIT_REF_NAME $CONTAINER_IMAGE:stable
        docker push $CONTAINER_IMAGE:$CI_COMMIT_REF_NAME
        docker push $CONTAINER_IMAGE:stable
      fi