Refactoring: Reorganise GitLab CI definition by splitting it up in dedicated, logical parts. Also introduce SINGLETESTNAME
ENV to run single test 🚀
This commit is contained in:
parent
d146919a07
commit
7aeeb6ed1a
35 changed files with 703 additions and 614 deletions
633
.gitlab-ci.yml
633
.gitlab-ci.yml
|
@ -1,4 +1,21 @@
|
|||
image: registry.znuny.com/docker/zammad-ruby:2.6.5
|
||||
default:
|
||||
image: registry.znuny.com/docker/zammad-ruby:2.6.5
|
||||
|
||||
include:
|
||||
- local: '/.gitlab/ci/base.yml'
|
||||
- local: '/.gitlab/ci/pre.yml'
|
||||
- local: '/.gitlab/ci/integration.yml'
|
||||
- local: '/.gitlab/ci/rspec.yml'
|
||||
- local: '/.gitlab/ci/unit.yml'
|
||||
- local: '/.gitlab/ci/browser-core.yml'
|
||||
- local: '/.gitlab/ci/browser-integration.yml'
|
||||
|
||||
# Stages
|
||||
stages:
|
||||
- pre
|
||||
- test
|
||||
- browser-core
|
||||
- browser-integration
|
||||
|
||||
# Global variables added to the ENV of each job
|
||||
variables:
|
||||
|
@ -17,48 +34,6 @@ variables:
|
|||
MAIL_ADDRESS: "zammad@mail.test.dc.zammad.com"
|
||||
MAIL_PASS: "zammad"
|
||||
|
||||
# Artifacts are stored for failed jobs for 2 days
|
||||
.artifacts_error_template: &artifacts_error
|
||||
artifacts:
|
||||
expire_in: 2 days
|
||||
when: on_failure
|
||||
paths:
|
||||
- tmp/screenshot*
|
||||
- tmp/screenshots/*
|
||||
- log/*.log
|
||||
|
||||
# Workaround to enable usage of mixed SSH and Docker GitLab CI runners
|
||||
.docker_env_template: &docker_env
|
||||
tags:
|
||||
- docker
|
||||
|
||||
# Workaround for blocked port 25 access on cloud provider infrastructure
|
||||
.requires_mail_port_access_template: &requires_mail_port_access
|
||||
tags:
|
||||
- mail
|
||||
|
||||
.base_env_template: &base_env
|
||||
<<: *docker_env
|
||||
<<: *artifacts_error
|
||||
|
||||
# General required Docker services for different/random DB envs
|
||||
.services_mysql_template: &services_mysql
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-mysql:latest
|
||||
alias: mysql
|
||||
|
||||
.services_postgresql_template: &services_postgresql
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
|
||||
.services_random_db_template: &services_random_db
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-mysql:latest
|
||||
alias: mysql
|
||||
- name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
|
||||
# Cache gems in between jobs and pipelines
|
||||
# ATTENTION: We use a combination of the Ruby major and minor version number
|
||||
# as a key for the cache to avoid cache growth and incompatibilities between
|
||||
|
@ -70,577 +45,7 @@ cache:
|
|||
|
||||
# Initialize application env
|
||||
before_script:
|
||||
- env # todo delete me !!!
|
||||
- bundle install -j $(nproc) --path vendor
|
||||
- bundle exec ruby script/build/database_config.rb
|
||||
|
||||
# Stages
|
||||
stages:
|
||||
- pre
|
||||
- test
|
||||
- browser-core
|
||||
- browser-integration
|
||||
|
||||
# pre stage
|
||||
|
||||
# Workaround to enable usage of mixed SSH and Docker GitLab CI runners
|
||||
.pre_stage_template: &pre_stage
|
||||
<<: *docker_env
|
||||
stage: pre
|
||||
before_script:
|
||||
- '' # disable before_script for pre "non-application" env
|
||||
|
||||
pre:rubocop:
|
||||
<<: *pre_stage
|
||||
script:
|
||||
- bundle install -j $(nproc) --path vendor
|
||||
- bundle exec rubocop
|
||||
|
||||
pre:coffeelint:
|
||||
<<: *pre_stage
|
||||
script:
|
||||
- coffeelint app/
|
||||
|
||||
pre:bundle-audit:
|
||||
<<: *pre_stage
|
||||
script:
|
||||
- gem install bundler-audit
|
||||
- bundle-audit update
|
||||
- bundle-audit --ignore CVE-2015-9284
|
||||
|
||||
pre:github:
|
||||
<<: *pre_stage
|
||||
tags:
|
||||
- deploy
|
||||
script:
|
||||
- script/build/sync_repo.sh git@github.com:zammad/zammad.git
|
||||
|
||||
# test stage
|
||||
|
||||
## RSpec
|
||||
|
||||
.script_rspec_template: &script_rspec_definition
|
||||
<<: *base_env
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
script:
|
||||
- bundle exec rake zammad:db:init
|
||||
- bundle exec rspec -t ~type:system -t ~searchindex
|
||||
|
||||
test:rspec:mysql:
|
||||
stage: test
|
||||
<<: *services_mysql
|
||||
<<: *script_rspec_definition
|
||||
|
||||
test:rspec:postgresql:
|
||||
stage: test
|
||||
<<: *services_postgresql
|
||||
<<: *script_rspec_definition
|
||||
|
||||
## Unit and Controller tests
|
||||
|
||||
.script_unit_template: &script_unit_definition
|
||||
<<: *base_env
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
script:
|
||||
- bundle exec rake zammad:db:init
|
||||
- bundle exec rake test:units
|
||||
- bundle exec rails test test/integration/object_manager_test.rb
|
||||
- bundle exec rails test test/integration/package_test.rb
|
||||
|
||||
test:unit:mysql:
|
||||
stage: test
|
||||
<<: *services_mysql
|
||||
<<: *script_unit_definition
|
||||
|
||||
test:unit:postgresql:
|
||||
stage: test
|
||||
<<: *services_postgresql
|
||||
<<: *script_unit_definition
|
||||
|
||||
## Integration tests
|
||||
|
||||
.test_integration_template: &test_integration_definition
|
||||
<<: *base_env
|
||||
<<: *services_random_db
|
||||
stage: test
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
|
||||
test:integration:email_helper_deliver:
|
||||
<<: *test_integration_definition
|
||||
<<: *requires_mail_port_access
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/email_helper_test.rb
|
||||
- bundle exec rails test test/integration/email_deliver_test.rb
|
||||
- bundle exec rails test test/integration/email_keep_on_server_test.rb
|
||||
- bundle exec rails test test/integration/email_postmaster_to_sender.rb
|
||||
|
||||
test:integration:facebook:
|
||||
<<: *test_integration_definition
|
||||
script:
|
||||
- bundle exec rake zammad:db:init
|
||||
- bundle exec rails test test/integration/facebook_test.rb
|
||||
allow_failure: true
|
||||
|
||||
test:integration:geo:
|
||||
<<: *test_integration_definition
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/geo_calendar_test.rb
|
||||
- bundle exec rails test test/integration/geo_location_test.rb
|
||||
- bundle exec rails test test/integration/geo_ip_test.rb
|
||||
|
||||
test:integration:user_agent:
|
||||
<<: *test_integration_definition
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/user_agent_test.rb
|
||||
- export ZAMMAD_PROXY_TEST=true
|
||||
- bundle exec rails test test/integration/user_agent_test.rb
|
||||
allow_failure: true
|
||||
|
||||
test:integration:slack:
|
||||
<<: *test_integration_definition
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- echo "gem 'slack-api'" >> Gemfile.local
|
||||
- bundle install -j $(nproc)
|
||||
- bundle exec rails test test/integration/slack_test.rb
|
||||
|
||||
test:integration:clearbit:
|
||||
<<: *test_integration_definition
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/clearbit_test.rb
|
||||
allow_failure: true
|
||||
|
||||
### Elasticsearch
|
||||
|
||||
.script_integration_es_variables: &script_integration_es_variables
|
||||
ES_INDEX_RAND: "true"
|
||||
ES_URL: "http://elasticsearch:9200"
|
||||
|
||||
.script_integration_es_template: &script_integration_es_definition
|
||||
<<: *base_env
|
||||
stage: test
|
||||
variables:
|
||||
<<: *script_integration_es_variables
|
||||
RAILS_ENV: "test"
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/elasticsearch_active_test.rb
|
||||
- bundle exec rails test test/integration/elasticsearch_test.rb
|
||||
- bundle exec rspec --tag searchindex --tag ~type:system
|
||||
- bundle exec rails test test/integration/report_test.rb
|
||||
|
||||
test:integration:es:5.6:
|
||||
<<: *script_integration_es_definition
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-mysql:latest
|
||||
alias: mysql
|
||||
- name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
- name: registry.znuny.com/docker/zammad-elasticsearch:5.6
|
||||
alias: elasticsearch
|
||||
|
||||
test:integration:es:6:
|
||||
<<: *script_integration_es_definition
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-mysql:latest
|
||||
alias: mysql
|
||||
- name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
- name: registry.znuny.com/docker/zammad-elasticsearch:6
|
||||
alias: elasticsearch
|
||||
|
||||
test:integration:es:7:
|
||||
<<: *script_integration_es_definition
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-mysql:latest
|
||||
alias: mysql
|
||||
- name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
- name: registry.znuny.com/docker/zammad-elasticsearch:7
|
||||
alias: elasticsearch
|
||||
|
||||
### Zendesk
|
||||
|
||||
test:integration:zendesk:
|
||||
<<: *base_env
|
||||
<<: *services_random_db
|
||||
stage: test
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/zendesk_import_test.rb
|
||||
|
||||
### OTRS
|
||||
|
||||
.script_integration_otrs_template: &script_integration_otrs_definition
|
||||
<<: *base_env
|
||||
<<: *services_random_db
|
||||
stage: test
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/otrs_import_test.rb
|
||||
|
||||
test:integration:otrs_6:
|
||||
<<: *script_integration_otrs_definition
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
IMPORT_OTRS_ENDPOINT: "https://vz1185.test.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
test:integration:otrs_5:
|
||||
<<: *script_integration_otrs_definition
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz1109.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
test:integration:otrs_4:
|
||||
<<: *script_integration_otrs_definition
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz383.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
test:integration:otrs_33:
|
||||
<<: *script_integration_otrs_definition
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz305.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
test:integration:otrs_32:
|
||||
<<: *script_integration_otrs_definition
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz382.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
test:integration:otrs_31:
|
||||
<<: *script_integration_otrs_definition
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz381.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
# Browser tests
|
||||
|
||||
## preparation (asset precompile)
|
||||
|
||||
browser:build:
|
||||
<<: *base_env
|
||||
<<: *services_postgresql
|
||||
stage: test
|
||||
variables:
|
||||
RAILS_ENV: "production"
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rake assets:precompile
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- public/assets/.sprockets-manifest*
|
||||
- public/assets/application-*
|
||||
- public/assets/knowledge_base*
|
||||
- public/assets/print-*
|
||||
|
||||
.services_browser_template: &services_browser_definition
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-mysql:latest
|
||||
alias: mysql
|
||||
- name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
- name: registry.znuny.com/docker/zammad-elasticsearch:stable
|
||||
alias: elasticsearch
|
||||
- name: docker.io/elgalu/selenium:3.141.59-p32
|
||||
alias: selenium
|
||||
- name: registry.znuny.com/docker/docker-imap-devel:latest
|
||||
alias: mail
|
||||
|
||||
## Browser core tests
|
||||
|
||||
.variables_browser_template: &variables_browser_definition
|
||||
RAILS_ENV: "production"
|
||||
APP_RESTART_CMD: "bundle exec rake environment zammad:ci:app:restart"
|
||||
|
||||
.test_browser_core_template: &test_browser_core_definition
|
||||
<<: *base_env
|
||||
stage: browser-core
|
||||
dependencies:
|
||||
- browser:build
|
||||
|
||||
## Capybara
|
||||
|
||||
.test_capybara_template: &test_capybara_definition
|
||||
<<: *test_browser_core_definition
|
||||
script:
|
||||
- bundle exec rake zammad:ci:test:prepare[with_elasticsearch]
|
||||
- bundle exec rspec --fail-fast -t type:system
|
||||
|
||||
.variables_capybara_chrome_template: &variables_capybara_chrome_definition
|
||||
<<: *test_capybara_definition
|
||||
variables:
|
||||
<<: *script_integration_es_variables
|
||||
RAILS_ENV: "test"
|
||||
BROWSER: "chrome"
|
||||
|
||||
.variables_capybara_ff_template: &variables_capybara_ff_definition
|
||||
<<: *test_capybara_definition
|
||||
variables:
|
||||
<<: *script_integration_es_variables
|
||||
RAILS_ENV: "test"
|
||||
BROWSER: "firefox"
|
||||
|
||||
test:browser:core:capybara_chrome:
|
||||
<<: *variables_capybara_chrome_definition
|
||||
<<: *services_browser_definition
|
||||
|
||||
test:browser:core:capybara_ff:
|
||||
<<: *variables_capybara_ff_definition
|
||||
<<: *services_browser_definition
|
||||
|
||||
### API clients
|
||||
|
||||
test:browser:integration:api_client_ruby:
|
||||
<<: *test_browser_core_definition
|
||||
<<: *services_random_db
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- cp contrib/auto_wizard_test.json auto_wizard.json
|
||||
- bundle exec rake zammad:ci:test:start
|
||||
- git clone https://github.com/zammad/zammad-api-client-ruby.git
|
||||
- cd zammad-api-client-ruby
|
||||
- bundle install -j $(nproc)
|
||||
- bundle exec rspec
|
||||
|
||||
test:browser:integration:api_client_php:
|
||||
<<: *test_browser_core_definition
|
||||
<<: *services_random_db
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
ZAMMAD_PHP_API_CLIENT_UNIT_TESTS_URL: "http://localhost:3000"
|
||||
ZAMMAD_PHP_API_CLIENT_UNIT_TESTS_USERNAME: "master@example.com"
|
||||
ZAMMAD_PHP_API_CLIENT_UNIT_TESTS_PASSWORD: "test"
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- RAILS_ENV=test bundle exec rake zammad:ci:test:start zammad:setup:auto_wizard
|
||||
- git clone https://github.com/zammad/zammad-api-client-php.git
|
||||
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
- php composer-setup.php --install-dir=/usr/local/bin
|
||||
- ln -s /usr/local/bin/composer.phar /usr/local/bin/composer
|
||||
- cd zammad-api-client-php
|
||||
- composer install
|
||||
- vendor/bin/phpunit
|
||||
|
||||
### Browser test slices
|
||||
|
||||
#### Templates
|
||||
|
||||
.script_browser_slice_template: &script_browser_slice_definition
|
||||
script:
|
||||
# temporary workaround to check Yahoo! mailbox only in test:browser:core:ff_3_* tests
|
||||
- if [[ $CI_JOB_NAME != test:browser:core:ff_3_* ]]; then unset MAILBOX_AUTO1 ; fi
|
||||
- if [[ $CI_JOB_NAME != test:browser:core:ff_3_* ]]; then unset MAILBOX_AUTO2 ; fi
|
||||
- if [[ $CI_JOB_NAME != test:browser:core:ff_3_* ]]; then unset MAILBOX_MANUAL1 ; fi
|
||||
- if [[ $CI_JOB_NAME != test:browser:core:ff_3_* ]]; then unset MAILBOX_MANUAL2 ; fi
|
||||
- env
|
||||
- script/build/test_slice_tests.sh $TEST_SLICE
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- bundle exec rake zammad:ci:test:start[with_elasticsearch]
|
||||
- time bundle exec rails test --fail-fast test/browser
|
||||
|
||||
.test_browser_core_base_template: &test_browser_core_base_definition
|
||||
<<: *test_browser_core_definition
|
||||
<<: *script_browser_slice_definition
|
||||
<<: *services_browser_definition
|
||||
|
||||
#### Firefox
|
||||
|
||||
test:browser:core:ff_1:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "1"
|
||||
|
||||
test:browser:core:ff_2:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "2"
|
||||
|
||||
test:browser:core:ff_3:
|
||||
<<: *test_browser_core_base_definition
|
||||
<<: *requires_mail_port_access
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "3"
|
||||
|
||||
test:browser:core:ff_4:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "4"
|
||||
|
||||
test:browser:core:ff_5:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "5"
|
||||
|
||||
test:browser:core:ff_6:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "6"
|
||||
|
||||
### Chrome
|
||||
|
||||
test:browser:core:chrome_1:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "1"
|
||||
|
||||
test:browser:core:chrome_2:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "2"
|
||||
|
||||
test:browser:core:chrome_3:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "3"
|
||||
|
||||
test:browser:core:chrome_4:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "4"
|
||||
|
||||
test:browser:core:chrome_5:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "5"
|
||||
|
||||
test:browser:core:chrome_6:
|
||||
<<: *test_browser_core_base_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "6"
|
||||
|
||||
### Auto wizard
|
||||
|
||||
.auto_wizard_services_template: &auto_wizard_services
|
||||
services:
|
||||
- name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
- name: docker.io/elgalu/selenium:3.141.59-p32
|
||||
alias: selenium
|
||||
|
||||
.test_browser_integration_template: &test_browser_integration_definition
|
||||
<<: *base_env
|
||||
<<: *auto_wizard_services
|
||||
stage: browser-integration
|
||||
dependencies:
|
||||
- browser:build
|
||||
|
||||
.script_integration_auto_wizard_template: &script_integration_auto_wizard_definition
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- cp $AUTO_WIZARD_FILE auto_wizard.json
|
||||
- bundle exec rake zammad:ci:test:start
|
||||
- bundle exec rails test $TEST_FILE
|
||||
|
||||
.browser_core_auto_wizard_template: &browser_core_auto_wizard_definition
|
||||
<<: *test_browser_core_definition
|
||||
<<: *auto_wizard_services
|
||||
<<: *script_integration_auto_wizard_definition
|
||||
|
||||
test:browser:autowizard_chrome:
|
||||
<<: *browser_core_auto_wizard_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
AUTO_WIZARD_FILE: "contrib/auto_wizard_example.json"
|
||||
TEST_FILE: "test/integration/auto_wizard_browser_test.rb"
|
||||
|
||||
test:browser:autowizard_ff:
|
||||
<<: *browser_core_auto_wizard_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
AUTO_WIZARD_FILE: "contrib/auto_wizard_example.json"
|
||||
TEST_FILE: "test/integration/auto_wizard_browser_test.rb"
|
||||
|
||||
### Browser integration tests
|
||||
|
||||
.browser_integration_auto_wizard_template: &browser_integration_auto_wizard_definition
|
||||
<<: *test_browser_integration_definition
|
||||
<<: *script_integration_auto_wizard_definition
|
||||
|
||||
test:browser:integration:facebook_chrome:
|
||||
<<: *browser_integration_auto_wizard_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
AUTO_WIZARD_FILE: "contrib/auto_wizard_test.json"
|
||||
TEST_FILE: "test/integration/facebook_browser_test.rb"
|
||||
|
||||
test:browser:integration:facebook_ff:
|
||||
<<: *browser_integration_auto_wizard_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "firefox"
|
||||
AUTO_WIZARD_FILE: "contrib/auto_wizard_test.json"
|
||||
TEST_FILE: "test/integration/facebook_browser_test.rb"
|
||||
|
||||
test:browser:integration:idoit_chrome:
|
||||
<<: *browser_integration_auto_wizard_definition
|
||||
variables:
|
||||
<<: *variables_browser_definition
|
||||
BROWSER: "chrome"
|
||||
AUTO_WIZARD_FILE: "contrib/auto_wizard_test.json"
|
||||
TEST_FILE: "test/integration/idoit_browser_test.rb"
|
||||
|
||||
### Browser integration tests
|
||||
|
||||
.variables_browser_import_template: &variables_browser_import_definition
|
||||
BROWSER: "chrome"
|
||||
RAILS_SERVE_STATIC_FILES: "true"
|
||||
RAILS_ENV: "production"
|
||||
|
||||
.browser_integration_import_template: &browser_integration_import_definition
|
||||
<<: *test_browser_integration_definition
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- bundle exec rake zammad:ci:test:start
|
||||
- bundle exec rails test $TEST_FILE
|
||||
|
||||
test:browser:integration:otrs_chrome:
|
||||
<<: *browser_integration_import_definition
|
||||
variables:
|
||||
<<: *variables_browser_import_definition
|
||||
TEST_FILE: "test/integration/otrs_import_browser_test.rb"
|
||||
|
||||
test:browser:integration:zendesk_chrome:
|
||||
<<: *browser_integration_import_definition
|
||||
variables:
|
||||
<<: *variables_browser_import_definition
|
||||
TEST_FILE: "test/integration/zendesk_import_browser_test.rb"
|
||||
|
|
116
.gitlab/ci/base.yml
Normal file
116
.gitlab/ci/base.yml
Normal file
|
@ -0,0 +1,116 @@
|
|||
# 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_app_restart_cmd: &variables_app_restart_cmd
|
||||
variables:
|
||||
APP_RESTART_CMD: "bundle exec rake environment zammad:ci:app:restart"
|
||||
|
||||
.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: registry.znuny.com/docker/zammad-mysql:latest
|
||||
alias: mysql
|
||||
|
||||
.docker_postgresql: &docker_postgresql
|
||||
name: registry.znuny.com/docker/zammad-postgresql:latest
|
||||
alias: postgresql
|
||||
|
||||
# elasticsearch docker
|
||||
.docker_elasticsearch: &docker_elasticsearch
|
||||
name: registry.znuny.com/docker/zammad-elasticsearch:$ELASTICSEARCH_TAG
|
||||
alias: elasticsearch
|
||||
|
||||
# selenium docker
|
||||
.docker_selenium: &docker_selenium
|
||||
name: docker.io/elgalu/selenium:3.141.59-p32
|
||||
alias: selenium
|
||||
|
||||
# selenium docker
|
||||
.docker_imap: &docker_imap
|
||||
name: registry.znuny.com/docker/docker-imap-devel:latest
|
||||
alias: mail
|
||||
|
||||
# service templates
|
||||
.services_mysql: &services_mysql
|
||||
services:
|
||||
- <<: *docker_mysql
|
||||
|
||||
.services_postgresql: &services_postgresql
|
||||
services:
|
||||
- <<: *docker_postgresql
|
||||
|
||||
.services_mysql_postgresql: &services_mysql_postgresql
|
||||
services:
|
||||
- <<: *docker_mysql
|
||||
- <<: *docker_postgresql
|
||||
|
||||
.services_postgresql_selenium: &services_postgresql_selenium
|
||||
services:
|
||||
- <<: *docker_postgresql
|
||||
- <<: *docker_selenium
|
||||
|
||||
.services_mysql_postgresql_elasticsearch: &services_mysql_postgresql_elasticsearch
|
||||
variables:
|
||||
ELASTICSEARCH_TAG: 'stable'
|
||||
services:
|
||||
- <<: *docker_mysql
|
||||
- <<: *docker_postgresql
|
||||
- <<: *docker_elasticsearch
|
||||
|
||||
.services_mysql_postgresql_elasticsearch_selenium_imap: &services_mysql_postgresql_elasticsearch_selenium_imap
|
||||
variables:
|
||||
ELASTICSEARCH_TAG: 'stable'
|
||||
services:
|
||||
- <<: *docker_mysql
|
||||
- <<: *docker_postgresql
|
||||
- <<: *docker_elasticsearch
|
||||
- <<: *docker_selenium
|
||||
- <<: *docker_imap
|
||||
|
||||
# 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:
|
||||
- ''
|
88
.gitlab/ci/browser-core.yml
Normal file
88
.gitlab/ci/browser-core.yml
Normal file
|
@ -0,0 +1,88 @@
|
|||
include:
|
||||
|
||||
# browser-core
|
||||
- local: '/.gitlab/ci/browser-core/build.yml'
|
||||
- local: '/.gitlab/ci/browser-core/autowizard_chrome.yml'
|
||||
- local: '/.gitlab/ci/browser-core/autowizard_ff.yml'
|
||||
- local: '/.gitlab/ci/browser-core/api_client_php.yml'
|
||||
- local: '/.gitlab/ci/browser-core/api_client_ruby.yml'
|
||||
- local: '/.gitlab/ci/browser-core/capybara_chrome.yml'
|
||||
- local: '/.gitlab/ci/browser-core/capybara_ff.yml'
|
||||
- local: '/.gitlab/ci/browser-core/chrome.yml'
|
||||
- local: '/.gitlab/ci/browser-core/firefox.yml'
|
||||
|
||||
.template_browser-core: &template_browser-core
|
||||
stage: browser-core
|
||||
dependencies:
|
||||
- browser:build
|
||||
extends:
|
||||
- .env_base
|
||||
- .variables_es
|
||||
- .variables_app_restart_cmd
|
||||
- .services_mysql_postgresql_elasticsearch_selenium_imap
|
||||
variables:
|
||||
RAILS_ENV: "production"
|
||||
script:
|
||||
# temporary workaround to check Yahoo! mailbox only in 3_firefox* tests
|
||||
- if [[ $CI_JOB_NAME != 3_firefox* ]]; then unset MAILBOX_AUTO1 ; fi
|
||||
- if [[ $CI_JOB_NAME != 3_firefox* ]]; then unset MAILBOX_AUTO2 ; fi
|
||||
- if [[ $CI_JOB_NAME != 3_firefox* ]]; then unset MAILBOX_MANUAL1 ; fi
|
||||
- if [[ $CI_JOB_NAME != 3_firefox* ]]; then unset MAILBOX_MANUAL2 ; fi
|
||||
- env
|
||||
- script/build/test_slice_tests.sh $TEST_SLICE
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- bundle exec rake zammad:ci:test:start[with_elasticsearch]
|
||||
- time bundle exec rails test --fail-fast test/browser
|
||||
|
||||
.template_browser-core_autowizard: &template_browser-core_autowizard
|
||||
stage: browser-core
|
||||
dependencies:
|
||||
- browser:build
|
||||
extends:
|
||||
- .env_base
|
||||
- .variables_app_restart_cmd
|
||||
- .services_postgresql_selenium
|
||||
variables:
|
||||
RAILS_ENV: "production"
|
||||
AUTO_WIZARD_FILE: "contrib/auto_wizard_example.json"
|
||||
TEST_FILE: "test/integration/auto_wizard_browser_test.rb"
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- cp $AUTO_WIZARD_FILE auto_wizard.json
|
||||
- bundle exec rake zammad:ci:test:start
|
||||
- bundle exec rails test $TEST_FILE
|
||||
|
||||
.template_browser-core_api_client: &template_browser-core_api_client
|
||||
stage: browser-core
|
||||
dependencies:
|
||||
- browser:build
|
||||
extends:
|
||||
- .env_base
|
||||
- .variables_app_restart_cmd
|
||||
- .services_mysql_postgresql
|
||||
variables:
|
||||
RAILS_ENV: "production"
|
||||
|
||||
.template_browser-core_capybara: &template_browser-core_capybara
|
||||
stage: browser-core
|
||||
dependencies:
|
||||
- browser:build
|
||||
extends:
|
||||
- .env_base
|
||||
- .variables_es
|
||||
- .services_mysql_postgresql_elasticsearch_selenium_imap
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
script:
|
||||
- bundle exec rake zammad:ci:test:prepare[with_elasticsearch]
|
||||
- bundle exec rspec --fail-fast -t type:system
|
||||
|
||||
# we need at least one job to store and include this template
|
||||
# $IGNORE is not defined
|
||||
ignore:
|
||||
stage: test
|
||||
only:
|
||||
variables:
|
||||
- $IGNORE
|
||||
script:
|
||||
- ''
|
17
.gitlab/ci/browser-core/api_client_php.yml
Normal file
17
.gitlab/ci/browser-core/api_client_php.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
api_client_php:
|
||||
extends:
|
||||
- .template_browser-core_api_client
|
||||
variables:
|
||||
ZAMMAD_PHP_API_CLIENT_UNIT_TESTS_URL: "http://localhost:3000"
|
||||
ZAMMAD_PHP_API_CLIENT_UNIT_TESTS_USERNAME: "master@example.com"
|
||||
ZAMMAD_PHP_API_CLIENT_UNIT_TESTS_PASSWORD: "test"
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- RAILS_ENV=test bundle exec rake zammad:ci:test:start zammad:setup:auto_wizard
|
||||
- git clone https://github.com/zammad/zammad-api-client-php.git
|
||||
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
- php composer-setup.php --install-dir=/usr/local/bin
|
||||
- ln -s /usr/local/bin/composer.phar /usr/local/bin/composer
|
||||
- cd zammad-api-client-php
|
||||
- composer install
|
||||
- vendor/bin/phpunit
|
12
.gitlab/ci/browser-core/api_client_ruby.yml
Normal file
12
.gitlab/ci/browser-core/api_client_ruby.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
api_client_ruby:
|
||||
extends:
|
||||
- .template_browser-core_api_client
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- cp contrib/auto_wizard_test.json auto_wizard.json
|
||||
- bundle exec rake zammad:ci:test:start
|
||||
- git clone https://github.com/zammad/zammad-api-client-ruby.git
|
||||
- cd zammad-api-client-ruby
|
||||
- bundle install -j $(nproc)
|
||||
- bundle exec rspec
|
||||
|
5
.gitlab/ci/browser-core/autowizard_chrome.yml
Normal file
5
.gitlab/ci/browser-core/autowizard_chrome.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
autowizard_chrome:
|
||||
extends:
|
||||
- .template_browser-core_autowizard
|
||||
variables:
|
||||
BROWSER: "chrome"
|
5
.gitlab/ci/browser-core/autowizard_ff.yml
Normal file
5
.gitlab/ci/browser-core/autowizard_ff.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
autowizard_ff:
|
||||
extends:
|
||||
- .template_browser-core_autowizard
|
||||
variables:
|
||||
BROWSER: "firefox"
|
17
.gitlab/ci/browser-core/build.yml
Normal file
17
.gitlab/ci/browser-core/build.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
browser:build:
|
||||
stage: test
|
||||
extends:
|
||||
- .tags_docker
|
||||
- .services_postgresql
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- public/assets/.sprockets-manifest*
|
||||
- public/assets/application-*
|
||||
- public/assets/knowledge_base*
|
||||
- public/assets/print-*
|
||||
variables:
|
||||
RAILS_ENV: "production"
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rake assets:precompile
|
5
.gitlab/ci/browser-core/capybara_chrome.yml
Normal file
5
.gitlab/ci/browser-core/capybara_chrome.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
capybara_chrome:
|
||||
extends:
|
||||
- .template_browser-core_capybara
|
||||
variables:
|
||||
BROWSER: "chrome"
|
5
.gitlab/ci/browser-core/capybara_ff.yml
Normal file
5
.gitlab/ci/browser-core/capybara_ff.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
capybara_ff:
|
||||
extends:
|
||||
- .template_browser-core_capybara
|
||||
variables:
|
||||
BROWSER: "firefox"
|
41
.gitlab/ci/browser-core/chrome.yml
Normal file
41
.gitlab/ci/browser-core/chrome.yml
Normal file
|
@ -0,0 +1,41 @@
|
|||
1_chrome:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "1"
|
||||
|
||||
2_chrome:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "2"
|
||||
|
||||
3_chrome:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "3"
|
||||
|
||||
4_chrome:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "4"
|
||||
|
||||
5_chrome:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "5"
|
||||
|
||||
6_chrome:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_SLICE: "6"
|
42
.gitlab/ci/browser-core/firefox.yml
Normal file
42
.gitlab/ci/browser-core/firefox.yml
Normal file
|
@ -0,0 +1,42 @@
|
|||
1_firefox:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "1"
|
||||
|
||||
2_firefox:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "2"
|
||||
|
||||
3_firefox:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
- .tags_mail
|
||||
variables:
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "3"
|
||||
|
||||
4_firefox:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "4"
|
||||
|
||||
5_firefox:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "5"
|
||||
|
||||
6_firefox:
|
||||
extends:
|
||||
- .template_browser-core
|
||||
variables:
|
||||
BROWSER: "firefox"
|
||||
TEST_SLICE: "6"
|
51
.gitlab/ci/browser-integration.yml
Normal file
51
.gitlab/ci/browser-integration.yml
Normal file
|
@ -0,0 +1,51 @@
|
|||
include:
|
||||
|
||||
# browser-integration
|
||||
- local: '/.gitlab/ci/browser-integration/facebook_chrome.yml'
|
||||
- local: '/.gitlab/ci/browser-integration/facebook_ff.yml'
|
||||
- local: '/.gitlab/ci/browser-integration/idoit_chrome.yml'
|
||||
- local: '/.gitlab/ci/browser-integration/otrs_chrome.yml'
|
||||
- local: '/.gitlab/ci/browser-integration/zendesk_chrome.yml'
|
||||
|
||||
.template_browser-integration: &template_browser-integration
|
||||
stage: browser-integration
|
||||
dependencies:
|
||||
- browser:build
|
||||
extends:
|
||||
- .env_base
|
||||
- .variables_app_restart_cmd
|
||||
- .services_postgresql_selenium
|
||||
variables:
|
||||
RAILS_ENV: "production"
|
||||
AUTO_WIZARD_FILE: "contrib/auto_wizard_test.json"
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- cp $AUTO_WIZARD_FILE auto_wizard.json
|
||||
- bundle exec rake zammad:ci:test:start
|
||||
- bundle exec rails test $TEST_FILE
|
||||
|
||||
.template_browser-integration_import: &template_browser-integration_import
|
||||
stage: browser-integration
|
||||
dependencies:
|
||||
- browser:build
|
||||
extends:
|
||||
- .env_base
|
||||
- .services_postgresql_selenium
|
||||
variables:
|
||||
RAILS_ENV: "production"
|
||||
BROWSER: "chrome"
|
||||
RAILS_SERVE_STATIC_FILES: "true"
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake db:create
|
||||
- bundle exec rake zammad:ci:test:start
|
||||
- bundle exec rails test $TEST_FILE
|
||||
|
||||
# we need at least one job to store and include this template
|
||||
# $IGNORE is not defined
|
||||
ignore:
|
||||
stage: test
|
||||
only:
|
||||
variables:
|
||||
- $IGNORE
|
||||
script:
|
||||
- ''
|
6
.gitlab/ci/browser-integration/facebook_chrome.yml
Normal file
6
.gitlab/ci/browser-integration/facebook_chrome.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
facebook_chrome:
|
||||
extends:
|
||||
- .template_browser-integration
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_FILE: "test/integration/facebook_browser_test.rb"
|
6
.gitlab/ci/browser-integration/facebook_ff.yml
Normal file
6
.gitlab/ci/browser-integration/facebook_ff.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
facebook_ff:
|
||||
extends:
|
||||
- .template_browser-integration
|
||||
variables:
|
||||
BROWSER: "firefox"
|
||||
TEST_FILE: "test/integration/facebook_browser_test.rb"
|
6
.gitlab/ci/browser-integration/idoit_chrome.yml
Normal file
6
.gitlab/ci/browser-integration/idoit_chrome.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
idoit_chrome:
|
||||
extends:
|
||||
- .template_browser-integration
|
||||
variables:
|
||||
BROWSER: "chrome"
|
||||
TEST_FILE: "test/integration/idoit_browser_test.rb"
|
5
.gitlab/ci/browser-integration/otrs_chrome.yml
Normal file
5
.gitlab/ci/browser-integration/otrs_chrome.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
otrs_chrome:
|
||||
extends:
|
||||
- .template_browser-integration_import
|
||||
variables:
|
||||
TEST_FILE: "test/integration/otrs_import_browser_test.rb"
|
5
.gitlab/ci/browser-integration/zendesk_chrome.yml
Normal file
5
.gitlab/ci/browser-integration/zendesk_chrome.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
zendesk_chrome:
|
||||
extends:
|
||||
- .template_browser-integration_import
|
||||
variables:
|
||||
TEST_FILE: "test/integration/zendesk_import_browser_test.rb"
|
30
.gitlab/ci/integration.yml
Normal file
30
.gitlab/ci/integration.yml
Normal file
|
@ -0,0 +1,30 @@
|
|||
include:
|
||||
- local: '/.gitlab/ci/integration/clearbit.yml'
|
||||
- local: '/.gitlab/ci/integration/email_helper_deliver.yml'
|
||||
- local: '/.gitlab/ci/integration/es.yml'
|
||||
- local: '/.gitlab/ci/integration/facebook.yml'
|
||||
- local: '/.gitlab/ci/integration/geo.yml'
|
||||
- local: '/.gitlab/ci/integration/otrs.yml'
|
||||
- local: '/.gitlab/ci/integration/slack.yml'
|
||||
- local: '/.gitlab/ci/integration/user_agent.yml'
|
||||
- local: '/.gitlab/ci/integration/zendesk.yml'
|
||||
|
||||
.template_integration: &template_integration
|
||||
extends:
|
||||
- .env_base
|
||||
- .services_mysql_postgresql
|
||||
tags:
|
||||
- integration
|
||||
stage: test
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
|
||||
# we need at least one job to store and include this template
|
||||
# $IGNORE is not defined
|
||||
ignore:
|
||||
stage: test
|
||||
only:
|
||||
variables:
|
||||
- $IGNORE
|
||||
script:
|
||||
- ''
|
7
.gitlab/ci/integration/clearbit.yml
Normal file
7
.gitlab/ci/integration/clearbit.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
clearbit:
|
||||
extends:
|
||||
- .template_integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/clearbit_test.rb
|
||||
allow_failure: true
|
10
.gitlab/ci/integration/email_helper_deliver.yml
Normal file
10
.gitlab/ci/integration/email_helper_deliver.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
email_helper_deliver:
|
||||
extends:
|
||||
- .template_integration
|
||||
- .tags_mail
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/email_helper_test.rb
|
||||
- bundle exec rails test test/integration/email_deliver_test.rb
|
||||
- bundle exec rails test test/integration/email_keep_on_server_test.rb
|
||||
- bundle exec rails test test/integration/email_postmaster_to_sender.rb
|
32
.gitlab/ci/integration/es.yml
Normal file
32
.gitlab/ci/integration/es.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
.template_integration_es: &template_integration_es
|
||||
extends:
|
||||
- .env_base
|
||||
- .services_mysql_postgresql_elasticsearch
|
||||
- .variables_es
|
||||
stage: test
|
||||
tags:
|
||||
- integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/elasticsearch_active_test.rb
|
||||
- bundle exec rails test test/integration/elasticsearch_test.rb
|
||||
- bundle exec rspec --tag searchindex --tag ~type:system
|
||||
- bundle exec rails test test/integration/report_test.rb
|
||||
|
||||
es:5.6:
|
||||
<<: *template_integration_es
|
||||
variables:
|
||||
ELASTICSEARCH_TAG: '5.6'
|
||||
RAILS_ENV: "test"
|
||||
|
||||
es:6:
|
||||
<<: *template_integration_es
|
||||
variables:
|
||||
ELASTICSEARCH_TAG: '6'
|
||||
RAILS_ENV: "test"
|
||||
|
||||
es:7:
|
||||
<<: *template_integration_es
|
||||
variables:
|
||||
ELASTICSEARCH_TAG: '7'
|
||||
RAILS_ENV: "test"
|
7
.gitlab/ci/integration/facebook.yml
Normal file
7
.gitlab/ci/integration/facebook.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
facebook:
|
||||
extends:
|
||||
- .template_integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:init
|
||||
- bundle exec rails test test/integration/facebook_test.rb
|
||||
allow_failure: true
|
8
.gitlab/ci/integration/geo.yml
Normal file
8
.gitlab/ci/integration/geo.yml
Normal file
|
@ -0,0 +1,8 @@
|
|||
geo:
|
||||
extends:
|
||||
- .template_integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/geo_calendar_test.rb
|
||||
- bundle exec rails test test/integration/geo_location_test.rb
|
||||
- bundle exec rails test test/integration/geo_ip_test.rb
|
36
.gitlab/ci/integration/otrs.yml
Normal file
36
.gitlab/ci/integration/otrs.yml
Normal file
|
@ -0,0 +1,36 @@
|
|||
.template_integration_otrs: &template_integration_otrs
|
||||
extends:
|
||||
- .template_integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/otrs_import_test.rb
|
||||
|
||||
otrs:6:
|
||||
<<: *template_integration_otrs
|
||||
variables:
|
||||
IMPORT_OTRS_ENDPOINT: "https://vz1185.test.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
otrs:5:
|
||||
<<: *template_integration_otrs
|
||||
variables:
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz1109.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
otrs:4:
|
||||
<<: *template_integration_otrs
|
||||
variables:
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz383.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
otrs:33:
|
||||
<<: *template_integration_otrs
|
||||
variables:
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz305.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
otrs:32:
|
||||
<<: *template_integration_otrs
|
||||
variables:
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz382.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
||||
|
||||
otrs:31:
|
||||
<<: *template_integration_otrs
|
||||
variables:
|
||||
IMPORT_OTRS_ENDPOINT: "http://vz381.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
8
.gitlab/ci/integration/slack.yml
Normal file
8
.gitlab/ci/integration/slack.yml
Normal file
|
@ -0,0 +1,8 @@
|
|||
slack:
|
||||
extends:
|
||||
- .template_integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- echo "gem 'slack-api'" >> Gemfile.local
|
||||
- bundle install -j $(nproc)
|
||||
- bundle exec rails test test/integration/slack_test.rb
|
9
.gitlab/ci/integration/user_agent.yml
Normal file
9
.gitlab/ci/integration/user_agent.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
user_agent:
|
||||
extends:
|
||||
- .template_integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/user_agent_test.rb
|
||||
- export ZAMMAD_PROXY_TEST=true
|
||||
- bundle exec rails test test/integration/user_agent_test.rb
|
||||
allow_failure: true
|
6
.gitlab/ci/integration/zendesk.yml
Normal file
6
.gitlab/ci/integration/zendesk.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
zendesk:
|
||||
extends:
|
||||
- .template_integration
|
||||
script:
|
||||
- bundle exec rake zammad:db:unseeded
|
||||
- bundle exec rails test test/integration/zendesk_import_test.rb
|
33
.gitlab/ci/pre.yml
Normal file
33
.gitlab/ci/pre.yml
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Workaround to enable usage of mixed SSH and Docker GitLab CI runners
|
||||
.template_pre: &template_pre
|
||||
stage: pre
|
||||
extends:
|
||||
- .tags_docker
|
||||
- .rules_singletest
|
||||
before_script:
|
||||
- '' # disable before_script for pre "non-application" env
|
||||
|
||||
rubocop:
|
||||
<<: *template_pre
|
||||
script:
|
||||
- bundle install -j $(nproc) --path vendor
|
||||
- bundle exec rubocop
|
||||
|
||||
coffeelint:
|
||||
<<: *template_pre
|
||||
script:
|
||||
- coffeelint app/
|
||||
|
||||
bundle-audit:
|
||||
<<: *template_pre
|
||||
script:
|
||||
- gem install bundler-audit
|
||||
- bundle-audit update
|
||||
- bundle-audit --ignore CVE-2015-9284
|
||||
|
||||
github:
|
||||
<<: *template_pre
|
||||
tags:
|
||||
- deploy
|
||||
script:
|
||||
- script/build/sync_repo.sh git@github.com:zammad/zammad.git
|
22
.gitlab/ci/rspec.yml
Normal file
22
.gitlab/ci/rspec.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
include:
|
||||
- local: '/.gitlab/ci/rspec/mysql.yml'
|
||||
- local: '/.gitlab/ci/rspec/postgresql.yml'
|
||||
|
||||
.template_rspec: &template_rspec
|
||||
extends:
|
||||
- .env_base
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
script:
|
||||
- bundle exec rake zammad:db:init
|
||||
- bundle exec rspec -t ~type:system -t ~searchindex
|
||||
|
||||
# we need at least one job to store and include this template
|
||||
# $IGNORE is not defined
|
||||
ignore:
|
||||
stage: test
|
||||
only:
|
||||
variables:
|
||||
- $IGNORE
|
||||
script:
|
||||
- ''
|
5
.gitlab/ci/rspec/mysql.yml
Normal file
5
.gitlab/ci/rspec/mysql.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
rspec:mysql:
|
||||
stage: test
|
||||
extends:
|
||||
- .services_mysql
|
||||
- .template_rspec
|
5
.gitlab/ci/rspec/postgresql.yml
Normal file
5
.gitlab/ci/rspec/postgresql.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
rspec:postgresql:
|
||||
stage: test
|
||||
extends:
|
||||
- .services_postgresql
|
||||
- .template_rspec
|
24
.gitlab/ci/unit.yml
Normal file
24
.gitlab/ci/unit.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
include:
|
||||
- local: '/.gitlab/ci/unit/mysql.yml'
|
||||
- local: '/.gitlab/ci/unit/postgresql.yml'
|
||||
|
||||
.template_unit: &template_unit
|
||||
extends:
|
||||
- .env_base
|
||||
variables:
|
||||
RAILS_ENV: "test"
|
||||
script:
|
||||
- bundle exec rake zammad:db:init
|
||||
- bundle exec rake test:units
|
||||
- bundle exec rails test test/integration/object_manager_test.rb
|
||||
- bundle exec rails test test/integration/package_test.rb
|
||||
|
||||
# we need at least one job to store and include this template
|
||||
# $IGNORE is not defined
|
||||
ignore:
|
||||
stage: test
|
||||
only:
|
||||
variables:
|
||||
- $IGNORE
|
||||
script:
|
||||
- ''
|
5
.gitlab/ci/unit/mysql.yml
Normal file
5
.gitlab/ci/unit/mysql.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
unit:mysql:
|
||||
stage: test
|
||||
extends:
|
||||
- .services_mysql
|
||||
- .template_unit
|
5
.gitlab/ci/unit/postgresql.yml
Normal file
5
.gitlab/ci/unit/postgresql.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
unit:postgresql:
|
||||
stage: test
|
||||
extends:
|
||||
- .services_postgresql
|
||||
- .template_unit
|
Loading…
Reference in a new issue