Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 5.01 KiB
stages:
  - test
  - build
  - deploy_to_test
  - deploy_to_production

workflow:
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
      variables:
        DOCKER_BUILD_IMAGE_TAG: ":stable"
        DOCKER_IMAGE_TAG: ":latest"
    - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
      variables:
        DOCKER_BUILD_IMAGE_TAG: ":latest"
        DOCKER_IMAGE_TAG: ":$CI_COMMIT_REF_NAME"

test-code:
  image: python:3.10
  stage: test
  services:
    - postgres:11.0
  variables:
    POSTGRES_DB: ldv-spec-db
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: "atdb123"
  script:
    - cd ldvspec
    - pip install -r requirements/dev.txt
    - python manage.py migrate --settings ldvspec.settings.ci
    - python manage.py test --settings ldvspec.settings.ci

docker-test-build:
  variables:
    if: main
  # Official docker image.
  image: docker$DOCKER_BUILD_IMAGE_TAG
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  stage: build
  services:
    - docker:dind
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE$DOCKER_IMAGE_TAG" ldvspec
    - docker push $CI_REGISTRY_IMAGE$DOCKER_IMAGE_TAG


docker-build-master:
  # Official docker image.
  image: docker$DOCKER_BUILD_IMAGE_TAG
  stage: build
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE" ldvspec
    - docker push "$CI_REGISTRY_IMAGE"
  only:
    - main


# deploy test/dev version on 'sdc-dev.astron.nl'
docker-deploy-main-test:
  stage: deploy_to_test
  image: alpine:stable
  before_script:
    ##
    ## Install ssh-agent if not already installed, it is required by Docker.
    ## (change apt-get to yum if you use an RPM-based image)