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.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/Gemfile +13 -6
  4. data/lib/simp/command_utils.rb +6 -3
  5. data/lib/simp/componentinfo.rb +47 -33
  6. data/lib/simp/local_gpg_signing_key.rb +302 -303
  7. data/lib/simp/packer/iso_vars_json.rb +17 -15
  8. data/lib/simp/rake/build/auto.rb +415 -432
  9. data/lib/simp/rake/build/build.rb +119 -124
  10. data/lib/simp/rake/build/clean.rb +39 -39
  11. data/lib/simp/rake/build/code.rb +125 -128
  12. data/lib/simp/rake/build/constants.rb +7 -4
  13. data/lib/simp/rake/build/deps.rb +196 -207
  14. data/lib/simp/rake/build/helpers.rb +17 -13
  15. data/lib/simp/rake/build/iso.rb +404 -411
  16. data/lib/simp/rake/build/pkg.rb +752 -759
  17. data/lib/simp/rake/build/rpmdeps.rb +70 -70
  18. data/lib/simp/rake/build/spec.rb +44 -46
  19. data/lib/simp/rake/build/tar.rb +169 -173
  20. data/lib/simp/rake/build/unpack.rb +105 -107
  21. data/lib/simp/rake/build/upload.rb +93 -102
  22. data/lib/simp/rake/fixtures.rb +69 -66
  23. data/lib/simp/rake/helpers/rpm_spec.rb +10 -7
  24. data/lib/simp/rake/helpers/version.rb +3 -1
  25. data/lib/simp/rake/helpers.rb +12 -10
  26. data/lib/simp/rake/pkg.rb +417 -440
  27. data/lib/simp/rake/pupmod/helpers.rb +100 -87
  28. data/lib/simp/rake/pupmod/module_build.rb +39 -0
  29. data/lib/simp/rake/rubygem.rb +57 -56
  30. data/lib/simp/rake.rb +34 -29
  31. data/lib/simp/relchecks.rb +52 -43
  32. data/lib/simp/rpm.rb +123 -127
  33. data/lib/simp/rpm_signer.rb +57 -55
  34. data/lib/simp/yum.rb +54 -53
  35. data/spec/acceptance/nodesets/{default_ruby3_1.yml → almalinux10.yml} +4 -4
  36. data/spec/acceptance/nodesets/{default.yml → almalinux8.yml} +2 -2
  37. data/spec/acceptance/nodesets/almalinux9.yml +25 -0
  38. data/spec/acceptance/suites/default/00_pkg_rpm_custom_scriptlets_spec.rb +23 -28
  39. data/spec/acceptance/suites/default/10_pkg_rpm_spec.rb +54 -56
  40. data/spec/acceptance/suites/default/30_pkg_misc_spec.rb +17 -19
  41. data/spec/acceptance/suites/default/50_local_gpg_signing_key_spec.rb +5 -5
  42. data/spec/acceptance/suites/default/55_build_pkg_signing_spec.rb +109 -101
  43. data/spec/acceptance/suites/default/files/testpackage/spec/classes/init_spec.rb +1 -0
  44. data/spec/acceptance/suites/default/files/testpackage/spec/files/mock_something.rb +3 -1
  45. data/spec/acceptance/suites/default/files/testpackage/utils/convert_v1_to_v2.rb +2 -0
  46. data/spec/acceptance/suites/default/support/build_project_helpers.rb +20 -17
  47. data/spec/acceptance/suites/default/support/build_user_helpers.rb +4 -2
  48. data/spec/acceptance/suites/default/support/pkg_rpm_helpers.rb +30 -31
  49. data/spec/acceptance/support/simp_rake_helpers.rb +3 -1
  50. data/spec/lib/simp/command_utils_spec.rb +13 -10
  51. data/spec/lib/simp/componentinfo_changelog_regex_spec.rb +33 -33
  52. data/spec/lib/simp/componentinfo_spec.rb +99 -86
  53. data/spec/lib/simp/packer/iso_vars_json_spec.rb +16 -14
  54. data/spec/lib/simp/rake/build/helpers_spec.rb +7 -7
  55. data/spec/lib/simp/rake/build/rpmdeps_spec.rb +48 -46
  56. data/spec/lib/simp/rake/helpers_spec.rb +6 -5
  57. data/spec/lib/simp/rake/pkg_spec.rb +7 -5
  58. data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/classes/init_spec.rb +3 -1
  59. data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/spec_helper.rb +2 -0
  60. data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/class_spec.rb +6 -5
  61. data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/classes/init_spec.rb +51 -33
  62. data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper.rb +15 -16
  63. data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper_acceptance.rb +9 -9
  64. data/spec/lib/simp/rake/pupmod/helpers_spec.rb +20 -19
  65. data/spec/lib/simp/rake/pupmod/module_build_spec.rb +87 -0
  66. data/spec/lib/simp/rake_spec.rb +7 -6
  67. data/spec/lib/simp/relchecks_check_rpm_changelog_spec.rb +26 -31
  68. data/spec/lib/simp/relchecks_compare_latest_tag_spec.rb +32 -26
  69. data/spec/lib/simp/relchecks_create_tag_changelog_spec.rb +27 -19
  70. data/spec/lib/simp/rpm_signer_spec.rb +45 -39
  71. data/spec/lib/simp/rpm_spec.rb +190 -194
  72. data/spec/spec_helper.rb +4 -2
  73. data/spec/spec_helper_acceptance.rb +3 -5
  74. metadata +37 -72
  75. data/bin/simp_rake_helpers +0 -3
  76. data/lib/simp/ci/gitlab.rb +0 -226
  77. data/lib/simp/rake/ci.rb +0 -31
  78. data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/default.yml +0 -41
  79. data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/oel.yml +0 -41
  80. data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/centos.yml +0 -41
  81. data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
  82. data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
  83. data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/default.yml +0 -41
  84. data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
  85. data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
  86. data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/default.yml +0 -41
  87. data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/oel.yml +0 -41
  88. data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/class_spec.rb +0 -0
  89. data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/default.yml +0 -41
  90. data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
  91. data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
  92. data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/default.yml +0 -41
  93. data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
  94. data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
  95. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/default.yml +0 -41
  96. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
  97. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
  98. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
  99. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
  100. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
  101. data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
  102. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/default.yml +0 -41
  103. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
  104. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
  105. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
  106. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
  107. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
  108. data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
  109. data/spec/lib/simp/ci/files/no_acceptance_tests/spec/spec_helper.rb +0 -0
  110. data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/default.yml +0 -41
  111. data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/oel.yml +0 -41
  112. data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/class_spec.rb +0 -0
  113. data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/default.yml +0 -41
  114. data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/oel.yml +0 -41
  115. data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/centos.yml +0 -41
  116. data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/oel.yml +0 -41
  117. data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/default.yml +0 -41
  118. data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
  119. data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
  120. data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/default.yml +0 -41
  121. data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/oel.yml +0 -41
  122. data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/class_spec.rb +0 -0
  123. data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/class_spec.rb +0 -0
  124. data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/centos.yml +0 -41
  125. data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
  126. data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
  127. data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/default.yml +0 -41
  128. data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
  129. 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