diff --git a/lib/puppet_metadata/beaker.rb b/lib/puppet_metadata/beaker.rb index a4b60a1..25ae0df 100644 --- a/lib/puppet_metadata/beaker.rb +++ b/lib/puppet_metadata/beaker.rb @@ -38,17 +38,20 @@ class << self # it's applied only when os is included in the provided array. # @param [Optional[String]] domain # Enforce a domain to be appended to the hostname, making it an FQDN + # @param [Optional[String]] puppet_version + # The desired puppet version. Will be appended to the hostname # # @return [nil] If no setfile is available # @return [Array<(String, String)>] The beaker setfile description with a readable name - def os_release_to_setfile(os, release, use_fqdn: false, pidfile_workaround: false, domain: nil) + def os_release_to_setfile(os, release, use_fqdn: false, pidfile_workaround: false, domain: nil, puppet_version: nil) return unless os_supported?(os) name = "#{os.downcase}#{release.tr('.', '')}-64" + hostname = puppet_version != nil ? "#{name}-#{puppet_version}" : name domain ||= 'example.com' if use_fqdn options = {} - options[:hostname] = "#{name}.#{domain}" if domain + options[:hostname] = "#{hostname}.#{domain}" if domain # Docker messes up cgroups and some systemd versions can't deal with # that when PIDFile is used. diff --git a/lib/puppet_metadata/github_actions.rb b/lib/puppet_metadata/github_actions.rb index 5073753..ce68a3f 100644 --- a/lib/puppet_metadata/github_actions.rb +++ b/lib/puppet_metadata/github_actions.rb @@ -75,7 +75,7 @@ def github_action_test_matrix(use_fqdn: false, pidfile_workaround: false, domain matrix_include = [] beaker_os_releases do |os, release, puppet_version| - setfile = PuppetMetadata::Beaker.os_release_to_setfile(os, release, use_fqdn: use_fqdn, pidfile_workaround: pidfile_workaround, domain: domain) + setfile = PuppetMetadata::Beaker.os_release_to_setfile(os, release, use_fqdn: use_fqdn, pidfile_workaround: pidfile_workaround, domain: domain, puppet_version: puppet_version[:collection]) next unless setfile matrix_include << { diff --git a/spec/github_actions_spec.rb b/spec/github_actions_spec.rb index 55b9913..8e86c6a 100644 --- a/spec/github_actions_spec.rb +++ b/spec/github_actions_spec.rb @@ -132,20 +132,20 @@ it 'is expected to contain supported os / puppet version combinations with hostname option' do is_expected.to contain_exactly( - {setfile: {name: "CentOS 7", value: "centos7-64{hostname=centos7-64.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, - {setfile: {name: "CentOS 7", value: "centos7-64{hostname=centos7-64.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, - {setfile: {name: "CentOS 7", value: "centos7-64{hostname=centos7-64.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}}, - {setfile: {name: "CentOS 8", value: "centos8-64{hostname=centos8-64.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, - {setfile: {name: "CentOS 8", value: "centos8-64{hostname=centos8-64.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, - {setfile: {name: "CentOS 8", value: "centos8-64{hostname=centos8-64.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}}, - {setfile: {name: "CentOS 9", value: "centos9-64{hostname=centos9-64.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, - {setfile: {name: "CentOS 9", value: "centos9-64{hostname=centos9-64.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, - {setfile: {name: "Debian 9", value: "debian9-64{hostname=debian9-64.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, - {setfile: {name: "Debian 9", value: "debian9-64{hostname=debian9-64.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, - {setfile: {name: "Debian 9", value: "debian9-64{hostname=debian9-64.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}}, - {setfile: {name: "Debian 10", value: "debian10-64{hostname=debian10-64.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, - {setfile: {name: "Debian 10", value: "debian10-64{hostname=debian10-64.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, - {setfile: {name: "Debian 10", value: "debian10-64{hostname=debian10-64.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}} + {setfile: {name: "CentOS 7", value: "centos7-64{hostname=centos7-64-puppet7.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, + {setfile: {name: "CentOS 7", value: "centos7-64{hostname=centos7-64-puppet6.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, + {setfile: {name: "CentOS 7", value: "centos7-64{hostname=centos7-64-puppet5.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}}, + {setfile: {name: "CentOS 8", value: "centos8-64{hostname=centos8-64-puppet7.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, + {setfile: {name: "CentOS 8", value: "centos8-64{hostname=centos8-64-puppet6.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, + {setfile: {name: "CentOS 8", value: "centos8-64{hostname=centos8-64-puppet5.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}}, + {setfile: {name: "CentOS 9", value: "centos9-64{hostname=centos9-64-puppet7.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, + {setfile: {name: "CentOS 9", value: "centos9-64{hostname=centos9-64-puppet6.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, + {setfile: {name: "Debian 9", value: "debian9-64{hostname=debian9-64-puppet7.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, + {setfile: {name: "Debian 9", value: "debian9-64{hostname=debian9-64-puppet6.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, + {setfile: {name: "Debian 9", value: "debian9-64{hostname=debian9-64-puppet5.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}}, + {setfile: {name: "Debian 10", value: "debian10-64{hostname=debian10-64-puppet7.example.com}"}, puppet: {name: "Puppet 7", value: 7, collection: "puppet7"}}, + {setfile: {name: "Debian 10", value: "debian10-64{hostname=debian10-64-puppet6.example.com}"}, puppet: {name: "Puppet 6", value: 6, collection: "puppet6"}}, + {setfile: {name: "Debian 10", value: "debian10-64{hostname=debian10-64-puppet5.example.com}"}, puppet: {name: "Puppet 5", value: 5, collection: "puppet5"}} ) end end