Skip to content
Snippets Groups Projects
Code owners
Validating GitLab CI configuration… Learn more
.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"