Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.38 KiB
Newer Older
variables:
  GIT_SUBMODULE_STRATEGY: recursive

test:
  stage: test
  image:
    name: python:3.8-buster
  before_script:
    - apt-get -y update && apt-get -y install postgresql libpq5 libpq-dev libssl-dev sudo
    - pip install poetry
    - adduser --disabled-password --gecos "Test User" testuser
    - sudo -u testuser poetry install
    - sudo -u testuser poetry run tox
  stage: build
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  script:
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" >/kaniko/.docker/config.json
    - /kaniko/executor
       --context $CI_PROJECT_DIR
       --dockerfile $CI_PROJECT_DIR/Dockerfile
       --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
       --cache=true
       --cleanup
    - /kaniko/executor
       --context $CI_PROJECT_DIR/docker/nginx
       --dockerfile $CI_PROJECT_DIR/docker/nginx/Dockerfile
       --destination $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_REF_NAME
       --cache=true
       --cleanup
  only:
    - master

deploy_demo-master:
  stage: deploy
  environment:
    name: demo/master
    url: http://demo-master.biscuit-sis.org  
  image:
    name: debian:buster-slim
  before_script:
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - echo "$SSH_KNOWN_HOSTS" >~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - grep -v "build:" docker-compose.yml | ssh root@demo-master.biscuit-sis.org
       env BISCUIT_IMAGE_TAG=${CI_COMMIT_REF_NAME}
       docker-compose
        -p biscuit-${CI_ENVIRONMENT_SLUG}
        -f /dev/stdin
        pull
    - grep -v "build:" docker-compose.yml | ssh root@demo-master.biscuit-sis.org
       env BISCUIT_IMAGE_TAG=${CI_COMMIT_REF_NAME}
Nik | Klampfradler's avatar
Nik | Klampfradler committed
           NGINX_HTTP_PORT=80
       docker-compose
        -p biscuit-${CI_ENVIRONMENT_SLUG}
        -f /dev/stdin
        up -d

pages:
  stage: deploy
  image:
    name: python:3.8-buster
  before_script:
  - apt-get -y update && apt-get -y install make
  - pip install poetry
  script:
  - poetry install
  - poetry run make -C docs html BUILDDIR=../public/docs
  artifacts:
    paths:
    - public/
  only:
  - master