stages: - test - build job_docker_master: stage: build image: docker:latest 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" -f docker/Dockerfile . - docker run --rm "$CI_REGISTRY_IMAGE" run-tests - docker push "$CI_REGISTRY_IMAGE" only: - master job_docker_other: stage: build image: docker:latest 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:$CI_COMMIT_REF_SLUG" -f docker/Dockerfile . - docker run --rm "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" run-tests - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" except: - master .test_base: &test_base stage: test image: ubuntu:16.04 cache: paths: - ~/.cache/pip/ - /var/cache/apt/archives/ before_script: - apt-get -qq update - apt-get install -qq locales - echo "LC_ALL=\"en_US.UTF-8\"" >> /etc/default/locale - locale-gen en_US.UTF-8 - update-locale LANG=en_US.UTF-8 - export LC_ALL=en_US.UTF-8 - apt-get install -qq curl gcc ghostscript gpgv gnupg graphviz libjpeg-dev libmagic1 libpng-dev libtiff-dev poppler-utils libreoffice poppler-utils python-dev python-pip tesseract-ocr tesseract-ocr-deu - pip install -r requirements/testing.txt test-mysql: <<: *test_base variables: MYSQL_ALLOW_EMPTY_PASSWORD: "yes" MYSQL_DATABASE: "mayan_edms" services: - mysql:8.0.3 script: - apt-get install -qq libmysqlclient-dev mysql-client - pip install mysql-python - mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;" - python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations tags: - mysql test-postgres: <<: *test_base variables: POSTGRES_DB: "mayan_edms" POSTGRES_PASSWORD: "postgres" services: - postgres script: - apt-get install -qq libpq-dev - pip install psycopg2 - python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations tags: - postgres test-sqlite: <<: *test_base script: - python manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations