.gitlab-ci.yml 8.46 KiB
# You can override the included template(s) by including variable overrides
# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings
# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings
# Note that environment variables can be set in several places
# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
image: python:3.10
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
MYSQL_DATABASE: terrareg-integration
MYSQL_ROOT_PASSWORD: password
IN_TERRAREG_CI: 'true'
AWS_ENDPOINT_URL: http://minio:9000
AWS_ACCESS_KEY_ID: GA7JXYR4LUFQ23YPMO_MFKLI
AWS_SECRET_ACCESS_KEY: 4x5JqXPd-1JOo97CwI0Pr_LBVS-gApjrU7JUNrclkbOXrdYU
AWS_BUCKET_NAME: terrareg
AWS_REGION: us-east-1
cache:
paths:
- ".cache/pip"
- venv/
- terraform-docs
".limit_release_and_non_pushes":
rules:
- if: "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\):.*/"
when: never
- if: "$CI_PIPELINE_SOURCE == 'push'"
when: always
- when: never
".pr_deployment":
variables:
APP_DOMAIN: gitlab-pr.dockstudios.co.uk
TF_STATE_NAME: "$CI_COMMIT_REF_SLUG"
TF_VAR_pull_request: "$CI_COMMIT_REF_SLUG"
TF_VAR_docker_image: terrareg:v${CI_COMMIT_SHORT_SHA}
TF_VAR_http_proxy: "$NOMAD_PROXY"
TF_VAR_no_proxy: "$NOMAD_NO_PROXY"
http_proxy: "$NOMAD_PROXY"
https_proxy: "$NOMAD_PROXY"
HTTP_PROXY: "$NOMAD_PROXY"
HTTPS_PROXY: "$NOMAD_PROXY"
no_proxy: "$NOMAD_NO_PROXY"
".before_script_python":
before_script:
- python --version
- apt-get update && apt-get install --assume-yes pkg-config libxml2-dev libxmlsec1-dev
libxmlsec1-openssl xmlsec1 libgraphviz-dev && apt-get clean all
- pip install virtualenv
- virtualenv venv
- source venv/bin/activate
- pip install -r requirements.txt
".test_image":
image: terrareg-test-image:v${CI_COMMIT_SHORT_SHA}
unit-integration-selenium-tests:
stage: test
extends:
- ".test_image"
- ".limit_release_and_non_pushes"
services:
- name: minio/minio
alias: minio
command:
- server
- "/data"
- "--console-address"
- ":9001"
variables:
MINIO_ACCESS_KEY: "$AWS_ACCESS_KEY_ID"
MINIO_SECRET_KEY: "$AWS_SECRET_ACCESS_KEY"