Skip to content

Commit 107b781

Browse files
committed
Move system test gems out of the main Gemfile
bundle install surprisingly resolves dependencies for all gems in a Gemfile, even gems in excluded groups. As a result, the "release prep" workflow failed trying to resolve gems that are only needed when running task acceptance tests. In Gemfile: bolt was resolved to 4.0.0, which depends on orchestrator_client was resolved to 0.7.2, which depends on faraday was resolved to 1.9.0, which depends on faraday-patron was resolved to 2.0.2, which depends on patron There are multiple dependency chains causing this: bolt (5.0.1) → r10k (>= 3.10, < 5) r10k (3.16.2) → puppet_forge (>= 2.3.0, < 4.0.0) puppet_forge (3.2.0) → faraday (~> 1.3) Also beaker-abs (1.1.0) → vmfloaty (>= 1.0, < 2) vmfloaty (1.8.1) → faraday (~> 1.5, >= 1.5.1) This commit moves the beaker related gems to task_spec/Gemfile, similar to what is done for acceptance/Gemfile. It sets Gemfile to be unmanaged so we don't regress on 7246266 the next time we `pdk update` It updates the task_acceptance_tests GH workflow to run `bundle install` in the `task_spec` directory. One important change is you no longer need to set GEM_BOLT as an environment variable **before** running "bundle install".
1 parent 4bbc12a commit 107b781

6 files changed

Lines changed: 60 additions & 72 deletions

File tree

.github/workflows/task_acceptance_tests.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,9 @@ jobs:
6262
with:
6363
ruby-version: ${{ env.ruby_version }}
6464
bundler-cache: true
65+
working-directory: task_spec
6566

6667
- name: Run task acceptance tests
6768
run: |
68-
cd task_spec
6969
bundle exec rake task_acceptance
70+
working-directory: task_spec

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
/bin/
1212
/doc/
1313
/Gemfile.local
14-
/Gemfile.lock
14+
Gemfile.lock
1515
/junit/
1616
/log/
17+
/task_spec/log/
1718
/pkg/
1819
/spec/fixtures/manifests/
1920
/spec/fixtures/modules/*
21+
/task_spec/spec/fixtures/
2022
/tmp/
2123
/vendor/
2224
/.vendor/

.sync.yml

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,7 @@
1212
Style/FileNull:
1313
Enabled: false
1414
Gemfile:
15-
optional:
16-
":development":
17-
- gem: beaker
18-
version: '~> 6.0'
19-
from_env: BEAKER_VERSION
20-
- gem: beaker-abs
21-
from_env: BEAKER_ABS_VERSION
22-
version: '~> 1.0'
23-
- gem: beaker-hostgenerator
24-
from_env: BEAKER_HOSTGENERATOR_VERSION
25-
version: '~> 2.0'
26-
- gem: beaker-rspec
27-
from_env: BEAKER_RSPEC_VERSION
28-
- gem: beaker-puppet
29-
from_env: BEAKER_PUPPET_VERSION
30-
version: '~> 4.0'
31-
- gem: beaker-module_install_helper
32-
- gem: beaker-puppet_install_helper
33-
- gem: nokogiri
34-
- gem: 'beaker-task_helper'
35-
version: '~> 1.9'
36-
condition: 'ENV["GEM_BOLT"]'
37-
":system_tests":
38-
- gem: voxpupuli-acceptance
39-
version: '~> 3'
40-
15+
unmanaged: true
4116
.github/workflows/release.yml:
4217
unmanaged: false
4318
.github/workflows/release_prep.yml:
@@ -50,6 +25,3 @@ spec/spec_helper.rb:
5025
Rakefile:
5126
extra_disabled_lint_checks:
5227
- puppet_url_without_modules
53-
requires:
54-
- require: voxpupuli/acceptance/rake
55-
conditional: Gem.loaded_specs.key? 'voxpupuli-acceptance'

Gemfile

Lines changed: 26 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -36,53 +36,39 @@ def print_gem_statement_for(gems)
3636
end
3737

3838
group :development do
39-
gem "json", '= 2.6.1', require: false if Gem::Requirement.create(['>= 3.1.0', '< 3.1.3']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
40-
gem "json", '= 2.6.3', require: false if Gem::Requirement.create(['>= 3.2.0', '< 4.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
41-
gem "racc", '~> 1.4.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
42-
gem "deep_merge", '~> 1.2.2', require: false
43-
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
44-
gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
45-
gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
46-
gem "metadata-json-lint", '~> 4.0', require: false
47-
gem "json-schema", '< 5.1.1', require: false
48-
gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
49-
gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
50-
gem "dependency_checker", '~> 1.0.0', require: false
51-
gem "parallel_tests", '= 3.12.1', require: false
52-
gem "pry", '~> 0.10', require: false
53-
gem "simplecov-console", '~> 0.9', require: false
54-
gem "puppet-debugger", '~> 1.6', require: false
55-
gem "rubocop", '~> 1.73.0', require: false
56-
gem "rubocop-performance", '~> 1.24.0', require: false
57-
gem "rubocop-rspec", '~> 3.5.0', require: false
58-
gem "rubocop-rspec_rails", '~> 2.31.0', require: false
59-
gem "rubocop-factory_bot", '~> 2.27.0', require: false
60-
gem "rubocop-capybara", '~> 2.22.0', require: false
61-
gem "rubocop-ast", '< 1.43.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
62-
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
63-
gem "bigdecimal", '< 3.2.2', require: false, platforms: [:mswin, :mingw, :x64_mingw]
64-
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 6.0')
65-
gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 1.0')
66-
gem "beaker-hostgenerator", *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'] || '~> 2.0')
67-
gem "beaker-rspec"
68-
gem "beaker-puppet", *location_for(ENV['BEAKER_PUPPET_VERSION'] || '~> 4.0')
69-
gem "beaker-module_install_helper", require: false
70-
gem "beaker-puppet_install_helper", require: false
71-
gem "nokogiri", require: false
72-
gem "beaker-task_helper", '~> 1.9', require: false if ENV["GEM_BOLT"]
39+
gem "json", '= 2.6.1', require: false if Gem::Requirement.create(['>= 3.1.0', '< 3.1.3']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
40+
gem "json", '= 2.6.3', require: false if Gem::Requirement.create(['>= 3.2.0', '< 4.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
41+
gem "racc", '~> 1.4.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
42+
gem "deep_merge", '~> 1.2.2', require: false
43+
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
44+
gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
45+
gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
46+
gem "metadata-json-lint", '~> 4.0', require: false
47+
gem "json-schema", '< 5.1.1', require: false
48+
gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
49+
gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
50+
gem "dependency_checker", '~> 1.0.0', require: false
51+
gem "parallel_tests", '= 3.12.1', require: false
52+
gem "pry", '~> 0.10', require: false
53+
gem "simplecov-console", '~> 0.9', require: false
54+
gem "puppet-debugger", '~> 1.6', require: false
55+
gem "rubocop", '~> 1.73.0', require: false
56+
gem "rubocop-performance", '~> 1.24.0', require: false
57+
gem "rubocop-rspec", '~> 3.5.0', require: false
58+
gem "rubocop-rspec_rails", '~> 2.31.0', require: false
59+
gem "rubocop-factory_bot", '~> 2.27.0', require: false
60+
gem "rubocop-capybara", '~> 2.22.0', require: false
61+
gem "rubocop-ast", '< 1.43.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
62+
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
63+
gem "bigdecimal", '< 3.2.2', require: false, platforms: [:mswin, :mingw, :x64_mingw]
7364
end
7465
group :development, :release_prep do
7566
gem "puppet-strings", '~> 4.0', require: false
7667
gem "puppetlabs_spec_helper", '~> 8.0', require: false
7768
gem "puppet-blacksmith", '~> 7.0', require: false
7869
end
79-
# We are overriding the default PDK template's Litmus logic in order to use the
80-
# latest Bolt in tests. See PA-7824.
8170
group :system_tests do
82-
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw]
83-
gem "CFPropertyList", '< 3.0.7', require: false, platforms: [:mswin, :mingw, :x64_mingw]
84-
gem "serverspec", '~> 2.41', require: false
85-
gem "voxpupuli-acceptance", '~> 3', require: false
71+
# add gems to acceptance/Gemfile or task_spec/Gemfile
8672
end
8773

8874
gems = {}

Rakefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ require 'puppet_litmus/rake_tasks' if Gem.loaded_specs.key? 'puppet_litmus'
55
require 'puppetlabs_spec_helper/rake_tasks'
66
require 'puppet-syntax/tasks/puppet-syntax'
77
require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
8-
require 'voxpupuli/acceptance/rake' if Gem.loaded_specs.key? 'voxpupuli-acceptance'
98

109
PuppetLint.configuration.send('disable_relative')
1110
PuppetLint.configuration.send('disable_80chars')

task_spec/Gemfile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
source ENV['GEM_SOURCE'] || "https://rubygems.org"
2+
3+
# Find a location or specific version before installing a gem
4+
#
5+
# @param place_or_version can be one of:
6+
# - A specific version,
7+
# - A git branch, as `https://<your-repo>.git#<branch-name>`
8+
# - A file URI, as `file:///absolute/file/path`
9+
def location_for(place, fake_version = nil)
10+
if place.is_a?(String) && place =~ /^((?:git[:@]|https:)[^#]*)#(.*)/
11+
[fake_version, { git: $1, branch: $2, require: false }].compact
12+
elsif place.is_a?(String) && place =~ /^file:\/\/(.*)/
13+
['>= 0', { path: File.expand_path($1), require: false }]
14+
else
15+
[place, { require: false }]
16+
end
17+
end
18+
19+
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 6')
20+
gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 1')
21+
gem "beaker-hostgenerator", *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'] || '~> 2')
22+
gem "beaker-puppet", *location_for(ENV['BEAKER_PUPPET_VERSION'] || '~> 4')
23+
gem "beaker-module_install_helper", require: false
24+
gem "beaker-puppet_install_helper", require: false
25+
gem "beaker-task_helper", '~>1.9' if ENV['GEM_BOLT']
26+
gem "puppetlabs_spec_helper", '~> 8.0', require: false
27+
gem "voxpupuli-acceptance", '~> 3', require: false
28+
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw]

0 commit comments

Comments
 (0)