Maintenance: switch to Docker based OTRS import testing rather than using external services.
This commit is contained in:
parent
c446bed0da
commit
1cb5b04d96
3 changed files with 78 additions and 20 deletions
|
@ -1,37 +1,82 @@
|
||||||
.template_integration_otrs: &template_integration_otrs
|
.template_integration_otrs: &template_integration_otrs
|
||||||
allow_failure: true
|
|
||||||
extends:
|
extends:
|
||||||
- .template_integration
|
- .template_integration
|
||||||
script:
|
script:
|
||||||
- bundle exec rake zammad:db:unseeded
|
- bundle exec rake zammad:db:unseeded
|
||||||
- bundle exec rails test test/integration/otrs_import_test.rb
|
- bundle exec rails test test/integration/otrs_import_test.rb
|
||||||
|
variables:
|
||||||
|
FF_NETWORK_PER_BUILD: 1 # https://docs.gitlab.com/runner/configuration/feature-flags.html
|
||||||
|
IMPORT_OTRS_ENDPOINT: "http://zammad-ci-otrsimport-app/otrs/public.pl?Action=ZammadMigrator"
|
||||||
|
TZ: "Europe/Berlin" # Required for the zammad-ci-otrsimport-app containers
|
||||||
|
|
||||||
otrs:6:
|
otrs:6:
|
||||||
<<: *template_integration_otrs
|
<<: *template_integration_otrs
|
||||||
variables:
|
services:
|
||||||
IMPORT_OTRS_ENDPOINT: "https://vz1185.test.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
- name: registry.znuny.com/docker/zammad-mysql:stable
|
||||||
|
alias: mysql
|
||||||
|
- name: registry.znuny.com/docker/zammad-postgresql:stable
|
||||||
|
alias: postgresql
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-db:otrs6
|
||||||
|
alias: zammad-ci-otrsimport-db
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-app:otrs6
|
||||||
|
alias: zammad-ci-otrsimport-app
|
||||||
|
|
||||||
otrs:5:
|
otrs:5:
|
||||||
<<: *template_integration_otrs
|
<<: *template_integration_otrs
|
||||||
variables:
|
services:
|
||||||
IMPORT_OTRS_ENDPOINT: "http://vz1109.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
- name: registry.znuny.com/docker/zammad-mysql:stable
|
||||||
|
alias: mysql
|
||||||
|
- name: registry.znuny.com/docker/zammad-postgresql:stable
|
||||||
|
alias: postgresql
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-db:otrs5
|
||||||
|
alias: zammad-ci-otrsimport-db
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-app:otrs5
|
||||||
|
alias: zammad-ci-otrsimport-app
|
||||||
|
|
||||||
otrs:4:
|
otrs:4:
|
||||||
<<: *template_integration_otrs
|
<<: *template_integration_otrs
|
||||||
variables:
|
services:
|
||||||
IMPORT_OTRS_ENDPOINT: "http://vz383.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
- name: registry.znuny.com/docker/zammad-mysql:stable
|
||||||
|
alias: mysql
|
||||||
|
- name: registry.znuny.com/docker/zammad-postgresql:stable
|
||||||
|
alias: postgresql
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-db:otrs4
|
||||||
|
alias: zammad-ci-otrsimport-db
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-app:otrs4
|
||||||
|
alias: zammad-ci-otrsimport-app
|
||||||
|
|
||||||
otrs:33:
|
otrs:33:
|
||||||
<<: *template_integration_otrs
|
<<: *template_integration_otrs
|
||||||
variables:
|
services:
|
||||||
IMPORT_OTRS_ENDPOINT: "http://vz305.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
- name: registry.znuny.com/docker/zammad-mysql:stable
|
||||||
|
alias: mysql
|
||||||
|
- name: registry.znuny.com/docker/zammad-postgresql:stable
|
||||||
|
alias: postgresql
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-db:otrs33
|
||||||
|
alias: zammad-ci-otrsimport-db
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-app:otrs33
|
||||||
|
alias: zammad-ci-otrsimport-app
|
||||||
|
|
||||||
otrs:32:
|
otrs:32:
|
||||||
<<: *template_integration_otrs
|
<<: *template_integration_otrs
|
||||||
variables:
|
services:
|
||||||
IMPORT_OTRS_ENDPOINT: "http://vz382.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
- name: registry.znuny.com/docker/zammad-mysql:stable
|
||||||
|
alias: mysql
|
||||||
|
- name: registry.znuny.com/docker/zammad-postgresql:stable
|
||||||
|
alias: postgresql
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-db:otrs32
|
||||||
|
alias: zammad-ci-otrsimport-db
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-app:otrs32
|
||||||
|
alias: zammad-ci-otrsimport-app
|
||||||
|
|
||||||
otrs:31:
|
otrs:31:
|
||||||
<<: *template_integration_otrs
|
<<: *template_integration_otrs
|
||||||
variables:
|
services:
|
||||||
IMPORT_OTRS_ENDPOINT: "http://vz381.demo.znuny.com/otrs/public.pl?Action=ZammadMigrator"
|
- name: registry.znuny.com/docker/zammad-mysql:stable
|
||||||
|
alias: mysql
|
||||||
|
- name: registry.znuny.com/docker/zammad-postgresql:stable
|
||||||
|
alias: postgresql
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-db:otrs31
|
||||||
|
alias: zammad-ci-otrsimport-db
|
||||||
|
- name: registry.znuny.com/docker/zammad-ci-otrsimport-app:otrs31
|
||||||
|
alias: zammad-ci-otrsimport-app
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
|
# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
|
||||||
|
|
||||||
require 'yaml'
|
require 'yaml'
|
||||||
|
require 'resolv'
|
||||||
|
|
||||||
cnf = YAML.load_file(File.join(__dir__, '../../config/database/database.yml'))
|
cnf = YAML.load_file(File.join(__dir__, '../../config/database/database.yml'))
|
||||||
|
|
||||||
|
@ -8,6 +9,7 @@ cnf.delete('default')
|
||||||
|
|
||||||
database = ENV['ENFORCE_DB_SERVICE']
|
database = ENV['ENFORCE_DB_SERVICE']
|
||||||
|
|
||||||
|
# Lookup in /etc/hosts first: gitlab uses that if FF_NETWORK_PER_BUILD is not set.
|
||||||
if !database
|
if !database
|
||||||
hostsfile = '/etc/hosts'
|
hostsfile = '/etc/hosts'
|
||||||
database = %w[postgresql mysql].shuffle.find do |possible_database|
|
database = %w[postgresql mysql].shuffle.find do |possible_database|
|
||||||
|
@ -15,7 +17,21 @@ if !database
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
raise "Can't find any supported database in #{hostsfile}." if database.nil?
|
# Lookup via DNS if needed: gitlab uses that if FF_NETWORK_PER_BUILD is enabled.
|
||||||
|
if !database
|
||||||
|
dns = Resolv::DNS.new
|
||||||
|
dns.timeouts = 3
|
||||||
|
database = %w[postgresql mysql].shuffle.find do |possible_database|
|
||||||
|
# Perform a lookup of the database host to check if it is configured as a service.
|
||||||
|
if dns.getaddress possible_database
|
||||||
|
next possible_database
|
||||||
|
end
|
||||||
|
rescue Resolv::ResolvError
|
||||||
|
# Ignore DNS lookup errors
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
raise "Can't find any supported database." if database.nil?
|
||||||
|
|
||||||
puts "NOTICE: Found/selected #{database} Database Service"
|
puts "NOTICE: Found/selected #{database} Database Service"
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,10 @@ class OtrsImportTest < ActiveSupport::TestCase
|
||||||
# check settings items
|
# check settings items
|
||||||
test 'check settings' do
|
test 'check settings' do
|
||||||
http = nil
|
http = nil
|
||||||
system_id = nil
|
if ENV['IMPORT_OTRS_ENDPOINT'] =~ %r{^(http|https)://}
|
||||||
if ENV['IMPORT_OTRS_ENDPOINT'] =~ %r{^(http|https)://((.+?)\..+?)/}
|
|
||||||
http = $1
|
http = $1
|
||||||
system_id = $3
|
|
||||||
system_id.gsub!(%r{[A-z]}, '') # strip chars
|
|
||||||
end
|
end
|
||||||
assert_equal( system_id, Setting.get('system_id'), 'system_id' )
|
assert( Setting.get('system_id'), 'system_id' )
|
||||||
assert_equal( http, Setting.get('http_type'), 'http_type' )
|
assert_equal( http, Setting.get('http_type'), 'http_type' )
|
||||||
assert_equal( 'Example Company', Setting.get('organization'), 'organization' )
|
assert_equal( 'Example Company', Setting.get('organization'), 'organization' )
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue