249 lines
6.8 KiB
YAML
249 lines
6.8 KiB
YAML
# Artifacts are stored for failed jobs for 2 days
|
|
.artifacts_error: &artifacts_error
|
|
artifacts:
|
|
expire_in: 2 days
|
|
when: on_failure
|
|
paths:
|
|
- tmp/screenshot*
|
|
- tmp/screenshots/*
|
|
- log/*.log
|
|
|
|
.variables_es: &variables_es
|
|
variables:
|
|
ES_INDEX_RAND: "true"
|
|
ES_URL: "http://elasticsearch:9200"
|
|
|
|
.variables_redis_memcached: &variables_redis_memcached
|
|
variables:
|
|
REDIS_URL: "redis://redis:6379"
|
|
MEMCACHE_SERVERS: "memcached"
|
|
|
|
.variables_selenium_firefox: &variables_selenium_firefox
|
|
variables:
|
|
REMOTE_URL: "http://selenium-firefox:4444/wd/hub"
|
|
BROWSER: "firefox"
|
|
# Settings for Selenium 3:
|
|
NODE_MAX_INSTANCES: "5"
|
|
NODE_MAX_SESSION: "5"
|
|
|
|
.variables_selenium_chrome: &variables_selenium_chrome
|
|
variables:
|
|
REMOTE_URL: "http://selenium-chrome:4444/wd/hub"
|
|
BROWSER: chrome
|
|
# Settings for Selenium 3:
|
|
NODE_MAX_INSTANCES: "5"
|
|
NODE_MAX_SESSION: "5"
|
|
|
|
.variables_app_restart_cmd: &variables_app_restart_cmd
|
|
variables:
|
|
APP_RESTART_CMD: "bundle exec rake environment zammad:ci:app:restart"
|
|
|
|
.variables_rspec_slicing: &variables_rspec_slicing
|
|
variables:
|
|
RSPEC_EXAMPLE_MATCHES: "." # Default: all. Set this to one of the slices in a job to run only that slice.
|
|
RSPEC_EXAMPLE_SLICE_1_OF_4: "^[A-H]"
|
|
RSPEC_EXAMPLE_SLICE_2_OF_4: "^[I-P]"
|
|
RSPEC_EXAMPLE_SLICE_3_OF_4: "^[Q-S]"
|
|
RSPEC_EXAMPLE_SLICE_4_OF_4: "^[^A-S]" # Rest, including lower case and other characters like '#'
|
|
|
|
.rules_singletest: &rules_singletest
|
|
rules:
|
|
- if: $CI_MERGE_REQUEST_ID
|
|
when: never
|
|
- if: '$SINGLETESTNAME && $SINGLETESTNAME == $CI_JOB_NAME'
|
|
when: always
|
|
- if: '$SINGLETESTNAME && $SINGLETESTNAME != $CI_JOB_NAME'
|
|
when: never
|
|
- if: '$CI_JOB_NAME'
|
|
when: on_success
|
|
|
|
# Workaround to enable usage of mixed SSH and Docker GitLab CI runners
|
|
.tags_docker: &tags_docker
|
|
tags:
|
|
- docker
|
|
|
|
# Workaround for blocked port 25 access on cloud provider infrastructure
|
|
.tags_mail: &tags_mail
|
|
tags:
|
|
- mail
|
|
|
|
.env_base: &env_base
|
|
<<: *tags_docker
|
|
<<: *artifacts_error
|
|
<<: *rules_singletest
|
|
|
|
# DB Docker
|
|
.docker_mysql: &docker_mysql
|
|
name: $CI_REGISTRY/docker/zammad-mysql:stable
|
|
alias: mysql
|
|
|
|
.docker_postgresql: &docker_postgresql
|
|
name: $CI_REGISTRY/docker/zammad-postgresql:stable
|
|
alias: postgresql
|
|
|
|
.docker_elasticsearch: &docker_elasticsearch
|
|
name: $CI_REGISTRY/docker/zammad-elasticsearch:$ELASTICSEARCH_TAG
|
|
alias: elasticsearch
|
|
|
|
.docker_selenium_chrome: &docker_selenium_chrome
|
|
name: $CI_REGISTRY/docker/zammad-selenium-chrome:stable
|
|
alias: selenium-chrome
|
|
|
|
.docker_selenium_firefox: &docker_selenium_firefox
|
|
name: $CI_REGISTRY/docker/zammad-selenium-firefox:stable
|
|
alias: selenium-firefox
|
|
|
|
.docker_imap: &docker_imap
|
|
name: $CI_REGISTRY/docker/zammad-imap:stable
|
|
alias: mail
|
|
|
|
.docker_redis: &docker_redis
|
|
name: $CI_REGISTRY/docker/zammad-redis:stable
|
|
alias: redis
|
|
|
|
.docker_memcached: &docker_memcached
|
|
name: $CI_REGISTRY/docker/zammad-memcached:stable
|
|
alias: memcached
|
|
command: ["memcached", "-m", "256M"]
|
|
|
|
# service templates
|
|
.services_mysql: &services_mysql
|
|
services:
|
|
- <<: *docker_mysql
|
|
|
|
.services_mysql_redis_memcached: &services_mysql_redis_memcached
|
|
extends:
|
|
- .variables_redis_memcached
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_redis
|
|
- <<: *docker_memcached
|
|
|
|
.services_postgresql: &services_postgresql
|
|
services:
|
|
- <<: *docker_postgresql
|
|
|
|
.services_postgresql_redis_memcached: &services_postgresql_redis_memcached
|
|
extends:
|
|
- .variables_redis_memcached
|
|
services:
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_redis
|
|
- <<: *docker_memcached
|
|
|
|
.services_mysql_postgresql: &services_mysql_postgresql
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
|
|
.services_mysql_postgresql_redis_memcached: &services_mysql_postgresql_redis_memcached
|
|
extends:
|
|
- .variables_redis_memcached
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_redis
|
|
- <<: *docker_memcached
|
|
|
|
.services_postgresql_selenium_chrome: &services_postgresql_selenium_chrome
|
|
extends:
|
|
- .variables_selenium_chrome
|
|
services:
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_selenium_chrome
|
|
|
|
.services_postgresql_selenium_firefox: &services_postgresql_selenium_firefox
|
|
extends:
|
|
- .variables_selenium_firefox
|
|
services:
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_selenium_firefox
|
|
|
|
.services_mysql_postgresql_imap: &services_mysql_postgresql_imap
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_imap
|
|
|
|
.services_mysql_postgresql_elasticsearch: &services_mysql_postgresql_elasticsearch
|
|
variables:
|
|
ELASTICSEARCH_TAG: 'stable'
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_elasticsearch
|
|
|
|
.services_mysql_postgresql_elasticsearch_selenium_chrome_imap: &services_mysql_postgresql_elasticsearch_selenium_chrome_imap
|
|
extends:
|
|
- .variables_selenium_chrome
|
|
variables:
|
|
ELASTICSEARCH_TAG: 'stable'
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_elasticsearch
|
|
- <<: *docker_selenium_chrome
|
|
- <<: *docker_imap
|
|
|
|
.services_mysql_postgresql_elasticsearch_selenium_firefox_imap: &services_mysql_postgresql_elasticsearch_selenium_firefox_imap
|
|
extends:
|
|
- .variables_selenium_firefox
|
|
variables:
|
|
ELASTICSEARCH_TAG: 'stable'
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_elasticsearch
|
|
- <<: *docker_selenium_firefox
|
|
- <<: *docker_imap
|
|
|
|
.services_mysql_postgresql_elasticsearch_selenium_chrome_imap_redis_memcached: &services_mysql_postgresql_elasticsearch_selenium_chrome_imap_redis_memcached
|
|
extends:
|
|
- .variables_selenium_chrome
|
|
- .variables_redis_memcached
|
|
variables:
|
|
ELASTICSEARCH_TAG: 'stable'
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_elasticsearch
|
|
- <<: *docker_selenium_chrome
|
|
- <<: *docker_imap
|
|
- <<: *docker_redis
|
|
- <<: *docker_memcached
|
|
|
|
.services_mysql_postgresql_elasticsearch_selenium_firefox_imap_redis_memcached: &services_mysql_postgresql_elasticsearch_selenium_firefox_imap_redis_memcached
|
|
extends:
|
|
- .variables_selenium_firefox
|
|
- .variables_redis_memcached
|
|
variables:
|
|
ELASTICSEARCH_TAG: 'stable'
|
|
services:
|
|
- <<: *docker_mysql
|
|
- <<: *docker_postgresql
|
|
- <<: *docker_elasticsearch
|
|
- <<: *docker_selenium_firefox
|
|
- <<: *docker_imap
|
|
- <<: *docker_redis
|
|
- <<: *docker_memcached
|
|
|
|
|
|
.rules_integration_manual_start: &rules_integration_manual_start
|
|
rules:
|
|
- if: $CI_MERGE_REQUEST_ID
|
|
when: never
|
|
- if: '$CI_COMMIT_BRANCH =~ /^private/ && $INTEGRATION_TESTS == null'
|
|
when: manual
|
|
allow_failure: true
|
|
- when: on_success
|
|
|
|
# we need at least one job to store and include this template
|
|
# but we skip this via 'only' -> 'variables' -> '$IGNORE'
|
|
# $IGNORE is not defined
|
|
ignore:
|
|
stage: test
|
|
only:
|
|
variables:
|
|
- $IGNORE
|
|
script:
|
|
- ''
|