simp-rake-helpers 5.25.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/Gemfile +13 -6
- data/lib/simp/command_utils.rb +6 -3
- data/lib/simp/componentinfo.rb +47 -33
- data/lib/simp/local_gpg_signing_key.rb +302 -303
- data/lib/simp/packer/iso_vars_json.rb +17 -15
- data/lib/simp/rake/build/auto.rb +415 -432
- data/lib/simp/rake/build/build.rb +119 -124
- data/lib/simp/rake/build/clean.rb +39 -39
- data/lib/simp/rake/build/code.rb +125 -128
- data/lib/simp/rake/build/constants.rb +7 -4
- data/lib/simp/rake/build/deps.rb +196 -207
- data/lib/simp/rake/build/helpers.rb +17 -13
- data/lib/simp/rake/build/iso.rb +404 -411
- data/lib/simp/rake/build/pkg.rb +752 -759
- data/lib/simp/rake/build/rpmdeps.rb +70 -70
- data/lib/simp/rake/build/spec.rb +44 -46
- data/lib/simp/rake/build/tar.rb +169 -173
- data/lib/simp/rake/build/unpack.rb +105 -107
- data/lib/simp/rake/build/upload.rb +93 -102
- data/lib/simp/rake/fixtures.rb +69 -66
- data/lib/simp/rake/helpers/rpm_spec.rb +10 -7
- data/lib/simp/rake/helpers/version.rb +3 -1
- data/lib/simp/rake/helpers.rb +12 -10
- data/lib/simp/rake/pkg.rb +417 -440
- data/lib/simp/rake/pupmod/helpers.rb +100 -87
- data/lib/simp/rake/pupmod/module_build.rb +39 -0
- data/lib/simp/rake/rubygem.rb +57 -56
- data/lib/simp/rake.rb +34 -29
- data/lib/simp/relchecks.rb +52 -43
- data/lib/simp/rpm.rb +123 -127
- data/lib/simp/rpm_signer.rb +57 -55
- data/lib/simp/yum.rb +54 -53
- data/spec/acceptance/nodesets/{default_ruby3_1.yml → almalinux10.yml} +4 -4
- data/spec/acceptance/nodesets/{default.yml → almalinux8.yml} +2 -2
- data/spec/acceptance/nodesets/almalinux9.yml +25 -0
- data/spec/acceptance/suites/default/00_pkg_rpm_custom_scriptlets_spec.rb +23 -28
- data/spec/acceptance/suites/default/10_pkg_rpm_spec.rb +54 -56
- data/spec/acceptance/suites/default/30_pkg_misc_spec.rb +17 -19
- data/spec/acceptance/suites/default/50_local_gpg_signing_key_spec.rb +5 -5
- data/spec/acceptance/suites/default/55_build_pkg_signing_spec.rb +109 -101
- data/spec/acceptance/suites/default/files/testpackage/spec/classes/init_spec.rb +1 -0
- data/spec/acceptance/suites/default/files/testpackage/spec/files/mock_something.rb +3 -1
- data/spec/acceptance/suites/default/files/testpackage/utils/convert_v1_to_v2.rb +2 -0
- data/spec/acceptance/suites/default/support/build_project_helpers.rb +20 -17
- data/spec/acceptance/suites/default/support/build_user_helpers.rb +4 -2
- data/spec/acceptance/suites/default/support/pkg_rpm_helpers.rb +30 -31
- data/spec/acceptance/support/simp_rake_helpers.rb +3 -1
- data/spec/lib/simp/command_utils_spec.rb +13 -10
- data/spec/lib/simp/componentinfo_changelog_regex_spec.rb +33 -33
- data/spec/lib/simp/componentinfo_spec.rb +99 -86
- data/spec/lib/simp/packer/iso_vars_json_spec.rb +16 -14
- data/spec/lib/simp/rake/build/helpers_spec.rb +7 -7
- data/spec/lib/simp/rake/build/rpmdeps_spec.rb +48 -46
- data/spec/lib/simp/rake/helpers_spec.rb +6 -5
- data/spec/lib/simp/rake/pkg_spec.rb +7 -5
- data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/classes/init_spec.rb +3 -1
- data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/spec_helper.rb +2 -0
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/class_spec.rb +6 -5
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/classes/init_spec.rb +51 -33
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper.rb +15 -16
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper_acceptance.rb +9 -9
- data/spec/lib/simp/rake/pupmod/helpers_spec.rb +20 -19
- data/spec/lib/simp/rake/pupmod/module_build_spec.rb +87 -0
- data/spec/lib/simp/rake_spec.rb +7 -6
- data/spec/lib/simp/relchecks_check_rpm_changelog_spec.rb +26 -31
- data/spec/lib/simp/relchecks_compare_latest_tag_spec.rb +32 -26
- data/spec/lib/simp/relchecks_create_tag_changelog_spec.rb +27 -19
- data/spec/lib/simp/rpm_signer_spec.rb +45 -39
- data/spec/lib/simp/rpm_spec.rb +190 -194
- data/spec/spec_helper.rb +4 -2
- data/spec/spec_helper_acceptance.rb +3 -5
- metadata +37 -72
- data/bin/simp_rake_helpers +0 -3
- data/lib/simp/ci/gitlab.rb +0 -226
- data/lib/simp/rake/ci.rb +0 -31
- data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
- data/spec/lib/simp/ci/files/no_acceptance_tests/spec/spec_helper.rb +0 -0
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/gitlab_spec.rb +0 -245
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
require 'simp/ci/gitlab'
|
|
2
|
-
require 'spec_helper'
|
|
3
|
-
|
|
4
|
-
describe Simp::Ci::Gitlab do
|
|
5
|
-
let(:files_dir) { File.join(File.dirname(__FILE__), 'files') }
|
|
6
|
-
|
|
7
|
-
describe '#acceptance_tests?' do
|
|
8
|
-
it 'returns true when acceptance test with suite-specific nodesets exists' do
|
|
9
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
10
|
-
expect( Simp::Ci::Gitlab.new(proj_dir).acceptance_tests? ).to be true
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it 'returns true when acceptance test with implied global nodesets exists' do
|
|
14
|
-
proj_dir = File.join(files_dir, 'valid_job_global_nodeset')
|
|
15
|
-
expect( Simp::Ci::Gitlab.new(proj_dir).acceptance_tests? ).to be true
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it 'returns false when acceptance test dir does not exists' do
|
|
19
|
-
proj_dir = File.join(files_dir, 'no_acceptance_tests')
|
|
20
|
-
expect( Simp::Ci::Gitlab.new(proj_dir).acceptance_tests? ).to be false
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it 'returns false when only global nodesets exists' do
|
|
24
|
-
proj_dir = File.join(files_dir, 'global_nodesets_only')
|
|
25
|
-
expect( Simp::Ci::Gitlab.new(proj_dir).acceptance_tests? ).to be false
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it 'returns false when only acceptance test suite skeleton exists' do
|
|
29
|
-
proj_dir = File.join(files_dir, 'suite_skeleton_only')
|
|
30
|
-
expect( Simp::Ci::Gitlab.new(proj_dir).acceptance_tests? ).to be false
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
describe '#validate_config' do
|
|
36
|
-
it 'succeeds when no .gitlab-ci.yml file exists and no tests exist' do
|
|
37
|
-
proj_dir = File.join(files_dir, 'no_gitlab_config_without_tests')
|
|
38
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_config }.to_not raise_error
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it 'succeeds but warns when no .gitlab-ci.yml file exists but tests exist' do
|
|
42
|
-
proj_dir = File.join(files_dir, 'no_gitlab_config_with_tests')
|
|
43
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_config }.
|
|
44
|
-
to output(/has acceptance tests but no \.gitlab\-ci\.yml/).to_stdout
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
it 'fails when .gitlab-ci.yml is malformed' do
|
|
48
|
-
proj_dir = File.join(files_dir, 'malformed_gitlab_config')
|
|
49
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_config }.
|
|
50
|
-
to raise_error(Simp::Ci::Gitlab::LintError,
|
|
51
|
-
/ERROR: Malformed YAML: \(#{proj_dir}\/\.gitlab-ci\.yml\):/)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
it 'succeeds when .gitlab-ci.yml is valid YAML and passes GitLab lint' do
|
|
55
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
56
|
-
validator = Simp::Ci::Gitlab.new(proj_dir)
|
|
57
|
-
|
|
58
|
-
expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
|
|
59
|
-
gitlab_response = '{"status":"valid","errors":[]}'
|
|
60
|
-
expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
|
|
61
|
-
|
|
62
|
-
expect{ validator.validate_config }.
|
|
63
|
-
to_not raise_error
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
it 'fails when .gitlab-ci.yml is valid YAML and fails GitLab lint' do
|
|
67
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
68
|
-
validator = Simp::Ci::Gitlab.new(proj_dir)
|
|
69
|
-
|
|
70
|
-
expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
|
|
71
|
-
gitlab_response = '{"status":"invalid","errors":["root config contains unknown keys: pup5.5-unit"]}'
|
|
72
|
-
expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
|
|
73
|
-
|
|
74
|
-
expect{ validator.validate_config }.
|
|
75
|
-
to raise_error(Simp::Ci::Gitlab::LintError,
|
|
76
|
-
/ERROR: Invalid GitLab config:.*root config contains unknown keys/m)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
describe '#validate_yaml' do
|
|
82
|
-
it 'succeeds when no .gitlab-ci.yml file exists' do
|
|
83
|
-
proj_dir = File.join(files_dir, 'no_gitlab_config_without_tests')
|
|
84
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_yaml }.
|
|
85
|
-
to_not raise_error
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
it 'fails when .gitlab-ci.yml is malformed' do
|
|
89
|
-
proj_dir = File.join(files_dir, 'malformed_gitlab_config')
|
|
90
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_yaml }.
|
|
91
|
-
to raise_error(Simp::Ci::Gitlab::LintError,
|
|
92
|
-
/ERROR: Malformed YAML: \(#{proj_dir}\/\.gitlab-ci\.yml\):/)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
it 'succeeds but warns when curl is not found' do
|
|
96
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
97
|
-
validator = Simp::Ci::Gitlab.new(proj_dir)
|
|
98
|
-
|
|
99
|
-
expect(validator).to receive(:`).and_return('')
|
|
100
|
-
|
|
101
|
-
expect{ validator.validate_yaml }.
|
|
102
|
-
to output(/Could not find 'curl'/).to_stdout
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
it 'succeeds but warns when connection to GitLab fails' do
|
|
106
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
107
|
-
validator = Simp::Ci::Gitlab.new(proj_dir)
|
|
108
|
-
|
|
109
|
-
expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
|
|
110
|
-
expect(validator).to receive(:`).with(/(?!which curl).*/).and_return('{}')
|
|
111
|
-
|
|
112
|
-
expect{ validator.validate_yaml }.
|
|
113
|
-
to output(/Unable to lint check/).to_stdout
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
it 'succeeds when config passes GitLab lint check' do
|
|
117
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
118
|
-
validator = Simp::Ci::Gitlab.new(proj_dir)
|
|
119
|
-
|
|
120
|
-
expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
|
|
121
|
-
gitlab_response = '{"status":"valid","errors":[]}'
|
|
122
|
-
expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
|
|
123
|
-
|
|
124
|
-
expect{ validator.validate_yaml }.
|
|
125
|
-
to_not raise_error
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
it 'fails when config fails GitLab lint check' do
|
|
129
|
-
# mocking lint API call to GitLab, so doesn't matter if we are using
|
|
130
|
-
# a project dir with valid config
|
|
131
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
132
|
-
validator = Simp::Ci::Gitlab.new(proj_dir)
|
|
133
|
-
|
|
134
|
-
expect(validator).to receive(:`).with('which curl').and_return('/usr/bin/curl')
|
|
135
|
-
gitlab_response = '{"status":"invalid","errors":["root config contains unknown keys: pup5.5-unit"]}'
|
|
136
|
-
expect(validator).to receive(:`).with(/(?!which curl).*/).and_return(gitlab_response)
|
|
137
|
-
|
|
138
|
-
expect{ validator.validate_yaml }.
|
|
139
|
-
to raise_error(Simp::Ci::Gitlab::LintError,
|
|
140
|
-
/ERROR: Invalid GitLab config:.*root config contains unknown keys/m)
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
describe '#validate_acceptance_test_jobs' do
|
|
146
|
-
it 'succeeds when no .gitlab-ci.yml file exists' do
|
|
147
|
-
proj_dir = File.join(files_dir, 'no_gitlab_config_without_tests')
|
|
148
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
149
|
-
to_not raise_error
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
it 'fails when .gitlab-ci.yml is malformed' do
|
|
153
|
-
proj_dir = File.join(files_dir, 'malformed_gitlab_config')
|
|
154
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
155
|
-
to raise_error(Simp::Ci::Gitlab::LintError,
|
|
156
|
-
/ERROR: Malformed YAML: \(#{proj_dir}\/\.gitlab-ci\.yml\):/)
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
it 'succeeds when no acceptance tests are specified in the .gitlab-ci.yml file' do
|
|
160
|
-
proj_dir = File.join(files_dir, 'no_acceptance_tests')
|
|
161
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
162
|
-
to_not raise_error
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
it 'succeeds when acceptance test with suite-specific nodeset is correctly specified' do
|
|
166
|
-
proj_dir = File.join(files_dir, 'valid_job_suite_nodeset')
|
|
167
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
168
|
-
to_not raise_error
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
it 'succeeds when acceptance test with nodeset link is correctly specified' do
|
|
172
|
-
proj_dir = File.join(files_dir, 'valid_job_nodeset_link')
|
|
173
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
174
|
-
to_not raise_error
|
|
175
|
-
end
|
|
176
|
-
|
|
177
|
-
it 'succeeds when acceptance test with nodeset dir link is correctly specified' do
|
|
178
|
-
proj_dir = File.join(files_dir, 'valid_job_nodeset_dir_link')
|
|
179
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
180
|
-
to_not raise_error
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
it 'succeeds when acceptance test with implied global nodeset is correctly specified' do
|
|
184
|
-
proj_dir = File.join(files_dir, 'valid_job_global_nodeset')
|
|
185
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
186
|
-
to_not raise_error
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
it 'succeeds when acceptance tests for multiple suites/nodesets are correctly specified' do
|
|
190
|
-
proj_dir = File.join(files_dir, 'multiple_valid_jobs')
|
|
191
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
192
|
-
to_not raise_error
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
it 'fails when an acceptance job is missing suite and nodeset' do
|
|
196
|
-
proj_dir = File.join(files_dir, 'job_missing_suite_and_nodeset')
|
|
197
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
198
|
-
to raise_error(Simp::Ci::Gitlab::JobError, /missing suite and nodeset/)
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
it 'fails when an acceptance job is missing nodeset' do
|
|
202
|
-
proj_dir = File.join(files_dir, 'job_missing_nodeset')
|
|
203
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
204
|
-
to raise_error(Simp::Ci::Gitlab::JobError, /missing nodeset/)
|
|
205
|
-
end
|
|
206
|
-
|
|
207
|
-
it 'fails when an acceptance job has invalid suite' do
|
|
208
|
-
proj_dir = File.join(files_dir, 'job_invalid_suite')
|
|
209
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
210
|
-
to raise_error(Simp::Ci::Gitlab::JobError, /uses invalid suite 'oops_suite'/)
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
it 'fails when an acceptance job has invalid nodeset' do
|
|
214
|
-
proj_dir = File.join(files_dir, 'job_invalid_nodeset')
|
|
215
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
216
|
-
to raise_error(Simp::Ci::Gitlab::JobError, /uses invalid nodeset 'oops_nodeset'/)
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
it 'fails when an acceptance job has nodeset with a broken link' do
|
|
220
|
-
proj_dir = File.join(files_dir, 'job_broken_link_nodeset')
|
|
221
|
-
# When the gem is created, the broken link nodeset YAML can't be included. So,
|
|
222
|
-
# in case someone is running this test on files packaged in the gem, skip it!
|
|
223
|
-
broken_link = File.join(proj_dir, 'spec', 'acceptance', 'nodesets', 'nodeset_broken_link.yml')
|
|
224
|
-
unless File.symlink?(broken_link)
|
|
225
|
-
skip 'test nodeset YAML with broken link is not present'
|
|
226
|
-
end
|
|
227
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
228
|
-
to raise_error(Simp::Ci::Gitlab::JobError, /uses invalid nodeset 'nodeset_broken_link'/)
|
|
229
|
-
end
|
|
230
|
-
|
|
231
|
-
it 'reports all job failures' do
|
|
232
|
-
proj_dir = File.join(files_dir, 'multiple_invalid_jobs')
|
|
233
|
-
expected_failures = <<-EOF
|
|
234
|
-
Invalid GitLab acceptance test config:
|
|
235
|
-
multiple_invalid_jobs job 'pup5.5.10' missing suite and nodeset: 'bundle exec rake beaker:suites'
|
|
236
|
-
multiple_invalid_jobs job 'pup5.5.10-fips' missing nodeset: 'BEAKER_fips=yes bundle exec rake beaker:suites[default]'
|
|
237
|
-
multiple_invalid_jobs job 'pup5.5.10-oel' uses invalid nodeset 'oel-x86_64': 'bundle exec rake beaker:suites[default,oel-x86_64]'
|
|
238
|
-
multiple_invalid_jobs job 'pup5.5.10-feature_3-oel' uses invalid suite 'feature_3': 'bundle exec rake beaker:suites[feature_3,oel]'
|
|
239
|
-
EOF
|
|
240
|
-
expect{ Simp::Ci::Gitlab.new(proj_dir).validate_acceptance_test_jobs }.
|
|
241
|
-
to raise_error(Simp::Ci::Gitlab::JobError, /#{Regexp.escape(expected_failures.strip)}/)
|
|
242
|
-
end
|
|
243
|
-
end
|
|
244
|
-
|
|
245
|
-
end
|