Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 2.94 KiB
---
image: docker:latest

variables:
  APT_CACHE_DIR: "${CI_PROJECT_DIR}/.cache/apt"
  DOCKER_DRIVER: overlay
  DOCKER_BRANCH: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
  DOCKER_LATEST: $CI_REGISTRY_IMAGE:latest
  PIP_CACHE_DIR: "${CI_PROJECT_DIR}/.cache/pip"

stages:
  - test
  - branch
  - latest

before_script:
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

.test: &test
  image: igwn/base:stretch
  services:
    - mysql:5.6
  variables:
    AWS_SES_ACCESS_KEY_ID: "fake_aws_id"
    AWS_SES_SECRET_ACCESS_KEY: "fake_aws_key"
    DJANGO_ALERT_EMAIL_FROM: "fake_email"
    DJANGO_DB_HOST: "mysql"
    DJANGO_DB_PORT: "3306"
    DJANGO_DB_NAME: "fake_name"
    DJANGO_DB_USER: "root"
    DJANGO_DB_PASSWORD: "fake_password"
    DJANGO_PRIMARY_FQDN: "fake_fqdn"
    DJANGO_SECRET_KEY: "fake_key"
    DJANGO_SETTINGS_MODULE: "config.settings.container.dev"
    DJANGO_TWILIO_ACCOUNT_SID: "fake_sid"
    DJANGO_TWILIO_AUTH_TOKEN: "fake_token"
    DJANGO_AWS_ELASTICACHE_ADDR: "fake_server:80"
    LVALERT_OVERSEER_PORT: "2"
    LVALERT_SERVER: "fake_server"
    LVALERT_USER: "fake_user"
    LVALERT_PASSWORD: "fake_password"
    MYSQL_DB: "${DJANGO_DB_NAME}"
    MYSQL_ROOT_PASSWORD: "${DJANGO_DB_PASSWORD}"
  before_script:
    # create apt cache directory
    - mkdir -pv ${APT_CACHE_DIR}
    # set python version
    - PYTHON_VERSION="${CI_JOB_NAME##*:}"
    - PYTHON_MAJOR="${PYTHON_VERSION:0:1}"
    - PYTHON="python3"
    # install build requirements
    - apt-get -yqq update
    - apt-get -o dir::cache::archives="${APT_CACHE_DIR}" install -yqq
          git
          libmariadbclient-dev
          libldap2-dev
          libsasl2-dev
          libssl-dev
          libxml2-dev
          swig
          pkg-config 
          libpng-dev 
          libfreetype6-dev 
          libmariadb-dev-compat 
          libxslt-dev
          ${PYTHON}-pip
    # install everything else from pip
    - ${PYTHON} -m pip install -r requirements.txt
    # create logs path required for tests
    - mkdir -pv ../logs/