base.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. # Artifacts are stored for failed jobs for 2 days
  2. .artifacts_error: &artifacts_error
  3. artifacts:
  4. expire_in: 2 days
  5. when: on_failure
  6. paths:
  7. - tmp/screenshot*
  8. - tmp/screenshots/*
  9. - log/*.log
  10. .variables_es: &variables_es
  11. variables:
  12. ES_INDEX_RAND: "true"
  13. ES_URL: "http://elasticsearch:9200"
  14. .variables_app_restart_cmd: &variables_app_restart_cmd
  15. variables:
  16. APP_RESTART_CMD: "bundle exec rake environment zammad:ci:app:restart"
  17. .rules_singletest: &rules_singletest
  18. rules:
  19. - if: $CI_MERGE_REQUEST_ID
  20. when: never
  21. - if: '$SINGLETESTNAME && $SINGLETESTNAME == $CI_JOB_NAME'
  22. when: always
  23. - if: '$SINGLETESTNAME && $SINGLETESTNAME != $CI_JOB_NAME'
  24. when: never
  25. - if: '$CI_JOB_NAME'
  26. when: on_success
  27. # Workaround to enable usage of mixed SSH and Docker GitLab CI runners
  28. .tags_docker: &tags_docker
  29. tags:
  30. - docker
  31. # Workaround for blocked port 25 access on cloud provider infrastructure
  32. .tags_mail: &tags_mail
  33. tags:
  34. - mail
  35. .env_base: &env_base
  36. <<: *tags_docker
  37. <<: *artifacts_error
  38. <<: *rules_singletest
  39. # DB Docker
  40. .docker_mysql: &docker_mysql
  41. name: registry.znuny.com/docker/zammad-mysql:stable
  42. alias: mysql
  43. .docker_postgresql: &docker_postgresql
  44. name: registry.znuny.com/docker/zammad-postgresql:stable
  45. alias: postgresql
  46. .docker_elasticsearch: &docker_elasticsearch
  47. name: registry.znuny.com/docker/zammad-elasticsearch:$ELASTICSEARCH_TAG
  48. alias: elasticsearch
  49. .docker_selenium: &docker_selenium
  50. name: registry.znuny.com/docker/zammad-selenium:stable
  51. alias: selenium
  52. .docker_imap: &docker_imap
  53. name: registry.znuny.com/docker/zammad-imap:stable
  54. alias: mail
  55. .docker_redis: &docker_redis
  56. name: redis:latest
  57. alias: redis
  58. .docker_memcached: &docker_memcached
  59. name: memcached:latest
  60. alias: memcached
  61. command: ["memcached", "-m", "256M"]
  62. # service templates
  63. .services_mysql: &services_mysql
  64. services:
  65. - <<: *docker_mysql
  66. .services_mysql_redis_memcached: &services_mysql_redis_memcached
  67. variables:
  68. REDIS_URL: "redis://redis:6379"
  69. MEMCACHE_SERVERS: "memcached"
  70. services:
  71. - <<: *docker_mysql
  72. - <<: *docker_redis
  73. - <<: *docker_memcached
  74. .services_postgresql: &services_postgresql
  75. services:
  76. - <<: *docker_postgresql
  77. .services_postgresql_redis_memcached: &services_postgresql_redis_memcached
  78. variables:
  79. REDIS_URL: "redis://redis:6379"
  80. MEMCACHE_SERVERS: "memcached"
  81. services:
  82. - <<: *docker_postgresql
  83. - <<: *docker_redis
  84. - <<: *docker_memcached
  85. .services_mysql_postgresql: &services_mysql_postgresql
  86. services:
  87. - <<: *docker_mysql
  88. - <<: *docker_postgresql
  89. .services_mysql_postgresql_redis_memcached: &services_mysql_postgresql_redis_memcached
  90. variables:
  91. REDIS_URL: "redis://redis:6379"
  92. MEMCACHE_SERVERS: "memcached"
  93. services:
  94. - <<: *docker_mysql
  95. - <<: *docker_postgresql
  96. - <<: *docker_redis
  97. - <<: *docker_memcached
  98. .services_postgresql_selenium: &services_postgresql_selenium
  99. services:
  100. - <<: *docker_postgresql
  101. - <<: *docker_selenium
  102. .services_mysql_postgresql_imap: &services_mysql_postgresql_imap
  103. services:
  104. - <<: *docker_mysql
  105. - <<: *docker_postgresql
  106. - <<: *docker_imap
  107. .services_mysql_postgresql_elasticsearch: &services_mysql_postgresql_elasticsearch
  108. variables:
  109. ELASTICSEARCH_TAG: 'stable'
  110. services:
  111. - <<: *docker_mysql
  112. - <<: *docker_postgresql
  113. - <<: *docker_elasticsearch
  114. .services_mysql_postgresql_elasticsearch_selenium_imap: &services_mysql_postgresql_elasticsearch_selenium_imap
  115. variables:
  116. ELASTICSEARCH_TAG: 'stable'
  117. services:
  118. - <<: *docker_mysql
  119. - <<: *docker_postgresql
  120. - <<: *docker_elasticsearch
  121. - <<: *docker_selenium
  122. - <<: *docker_imap
  123. .services_mysql_postgresql_elasticsearch_selenium_imap_redis_memcached: &services_mysql_postgresql_elasticsearch_selenium_imap_redis_memcached
  124. variables:
  125. ELASTICSEARCH_TAG: 'stable'
  126. REDIS_URL: "redis://redis:6379"
  127. MEMCACHE_SERVERS: "memcached"
  128. services:
  129. - <<: *docker_mysql
  130. - <<: *docker_postgresql
  131. - <<: *docker_elasticsearch
  132. - <<: *docker_selenium
  133. - <<: *docker_imap
  134. - <<: *docker_redis
  135. - <<: *docker_memcached
  136. .rules_integration_manual_start: &rules_integration_manual_start
  137. rules:
  138. - if: $CI_MERGE_REQUEST_ID
  139. when: never
  140. - if: '$CI_COMMIT_BRANCH =~ /^private/ && $INTEGRATION_TESTS == null'
  141. when: manual
  142. allow_failure: true
  143. - when: on_success
  144. # we need at least one job to store and include this template
  145. # but we skip this via 'only' -> 'variables' -> '$IGNORE'
  146. # $IGNORE is not defined
  147. ignore:
  148. stage: test
  149. only:
  150. variables:
  151. - $IGNORE
  152. script:
  153. - ''