Skip to content

Commit eeb8afb

Browse files
authored
Merge pull request #636 from mhashizume/MODULES-11361/main/puppet8
(MODULES-11361) Puppet 8 compatibility work
2 parents 67e81b6 + fbabd4f commit eeb8afb

31 files changed

+143
-86
lines changed

.devcontainer/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# devcontainer
2+
3+
4+
For format details, see https://aka.ms/devcontainer.json.
5+
6+
For config options, see the README at:
7+
https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/puppet
8+
9+
``` json
10+
{
11+
"name": "Puppet Development Kit (Community)",
12+
"dockerFile": "Dockerfile",
13+
14+
// Set *default* container specific settings.json values on container create.
15+
"settings": {
16+
"terminal.integrated.profiles.linux": {
17+
"bash": {
18+
"path": "bash",
19+
}
20+
}
21+
},
22+
23+
// Add the IDs of extensions you want installed when the container is created.
24+
"extensions": [
25+
"puppet.puppet-vscode",
26+
"rebornix.Ruby"
27+
],
28+
29+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
30+
"forwardPorts": [],
31+
32+
// Use 'postCreateCommand' to run commands after the container is created.
33+
"postCreateCommand": "pdk --version",
34+
}
35+
```
36+
37+
38+

.devcontainer/devcontainer.json

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
1-
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2-
// https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/puppet
31
{
42
"name": "Puppet Development Kit (Community)",
53
"dockerFile": "Dockerfile",
64

7-
// Set *default* container specific settings.json values on container create.
85
"settings": {
9-
"terminal.integrated.shell.linux": "/bin/bash"
6+
"terminal.integrated.profiles.linux": {
7+
"bash": {
8+
"path": "bash"
9+
}
10+
}
1011
},
1112

12-
// Add the IDs of extensions you want installed when the container is created.
1313
"extensions": [
1414
"puppet.puppet-vscode",
1515
"rebornix.Ruby"
1616
]
17-
18-
// Use 'forwardPorts' to make a list of ports inside the container available locally.
19-
// "forwardPorts": [],
20-
21-
// Use 'postCreateCommand' to run commands after the container is created.
22-
// "postCreateCommand": "pdk --version",
2317
}

.github/workflows/auto_release.yml

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ jobs:
1414
runs-on: ubuntu-20.04
1515

1616
steps:
17+
1718
- name: "Honeycomb: Start recording"
1819
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
1920
with:
@@ -25,18 +26,19 @@ jobs:
2526
run: |
2627
echo STEP_ID="auto-release" >> $GITHUB_ENV
2728
echo STEP_START=$(date +%s) >> $GITHUB_ENV
28-
2929
- name: "Checkout Source"
3030
if: ${{ github.repository_owner == 'puppetlabs' }}
3131
uses: actions/checkout@v3
3232
with:
3333
fetch-depth: 0
3434
persist-credentials: false
35-
35+
36+
# We use the dev tools image here because the PDK image does not have the
37+
# build tools necessary to compile native extensions.
3638
- name: "PDK Release prep"
37-
uses: docker://puppet/iac_release:ci
39+
uses: docker://puppet/puppet-dev-tools:4.x
3840
with:
39-
args: 'release prep --force'
41+
args: 'pdk release prep --force --debug'
4042
env:
4143
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4244

@@ -46,38 +48,44 @@ jobs:
4648
run: |
4749
echo "::set-output name=ver::$(jq --raw-output .version metadata.json)"
4850
49-
- name: "Commit changes"
51+
- name: "Check if a release is necessary"
5052
if: ${{ github.repository_owner == 'puppetlabs' }}
53+
id: check
54+
run: |
55+
git diff --quiet CHANGELOG.md && echo "::set-output name=release::false" || echo "::set-output name=release::true"
56+
57+
- name: "Commit changes"
58+
if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
5159
run: |
5260
git config --local user.email "${{ github.repository_owner }}@users.noreply.github.com"
5361
git config --local user.name "GitHub Action"
5462
git add .
55-
git commit -m "(packaging) Release prep v${{ steps.gv.outputs.ver }}"
63+
git commit -m "Release prep v${{ steps.gv.outputs.ver }}"
5664
5765
- name: Create Pull Request
5866
id: cpr
5967
uses: puppetlabs/peter-evans-create-pull-request@v3
60-
if: ${{ github.repository_owner == 'puppetlabs' }}
68+
if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
6169
with:
6270
token: ${{ secrets.GITHUB_TOKEN }}
63-
commit-message: "(packaging) Release prep v${{ steps.gv.outputs.ver }}"
71+
commit-message: "Release prep v${{ steps.gv.outputs.ver }}"
6472
branch: "release-prep"
6573
delete-branch: true
6674
title: "Release prep v${{ steps.gv.outputs.ver }}"
6775
body: |
6876
Automated release-prep through [pdk-templates](https://github.com/puppetlabs/pdk-templates/blob/main/moduleroot/.github/workflows/auto_release.yml.erb) from commit ${{ github.sha }}.
6977
Please verify before merging:
70-
- [ ] last [nightly](https://github.com/${{ github.repository }}/actions/workflows/daily_unit_tests_with_nightly_puppet_gem.yaml) run is green
78+
- [ ] last [nightly](https://github.com/${{ github.repository }}/actions/workflows/nightly.yml) run is green
7179
- [ ] [Changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) is readable and has no unlabeled pull requests
7280
- [ ] Ensure the [changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) version and [metadata](https://github.com/${{ github.repository }}/blob/release-prep/metadata.json) version match
7381
labels: "maintenance"
7482

7583
- name: PR outputs
76-
if: ${{ github.repository_owner == 'puppetlabs' }}
84+
if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
7785
run: |
7886
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
7987
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
80-
88+
8189
- name: "Honeycomb: Record finish step"
8290
if: ${{ always() }}
8391
run: |

.rubocop.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ require:
44
- rubocop-rspec
55
AllCops:
66
DisplayCopNames: true
7-
TargetRubyVersion: '2.4'
7+
TargetRubyVersion: '2.5'
88
Include:
99
- "**/*.rb"
1010
Exclude:
@@ -78,10 +78,12 @@ RSpec/MessageSpies:
7878
EnforcedStyle: receive
7979
Style/Documentation:
8080
Exclude:
81-
- files/*
81+
- files/rb_task_helper.rb
8282
- lib/puppet/parser/functions/**/*
8383
- spec/**/*
84-
- tasks/*
84+
- tasks/delete_local_filebucket.rb
85+
- tasks/facts_diff.rb
86+
- tasks/run.rb
8587
Style/WordArray:
8688
EnforcedStyle: brackets
8789
Performance/AncestorsInclude:

.sync.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ Gemfile:
2828
version: '~> 1.22'
2929
- gem: github_changelog_generator
3030
- gem: beaker-module_install_helper
31+
version: '= 1.16.4'
32+
- gem: concurrent-ruby
33+
version: '= 1.1.10'
3134
- gem: beaker-puppet_install_helper
3235
- gem: nokogiri
3336
- gem: 'bolt'

Gemfile

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,48 @@ def location_for(place_or_version, fake_version = nil)
1313
end
1414
end
1515

16-
ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
17-
minor_version = ruby_version_segments[0..1].join('.')
18-
1916
group :development do
20-
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
21-
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
22-
gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 2.8.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
23-
gem "puppet-module-posix-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
24-
gem "puppet-module-posix-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
25-
gem "puppet-module-win-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
26-
gem "puppet-module-win-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
17+
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
18+
gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
19+
gem "json", '= 2.5.1', require: false if Gem::Requirement.create(['>= 3.0.0', '< 3.0.5']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
20+
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))
21+
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))
22+
gem "voxpupuli-puppet-lint-plugins", '~> 3.1', require: false
23+
gem "facterdb", '~> 1.18', require: false
24+
gem "metadata-json-lint", '>= 2.0.2', '< 4.0.0', require: false
25+
gem "puppetlabs_spec_helper", '>= 3.0.0', '< 5.0.0', require: false
26+
gem "rspec-puppet-facts", '~> 2.0', require: false
27+
gem "codecov", '~> 0.2', require: false
28+
gem "dependency_checker", '~> 0.2', require: false
29+
gem "parallel_tests", '~> 3.4', require: false
30+
gem "pry", '~> 0.10', require: false
31+
gem "simplecov-console", '~> 0.5', require: false
32+
gem "puppet-debugger", '~> 1.0', require: false
33+
gem "rubocop", '= 1.6.1', require: false
34+
gem "rubocop-performance", '= 1.9.1', require: false
35+
gem "rubocop-rspec", '= 2.0.1', require: false
36+
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
2737
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 4.30')
2838
gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.9')
29-
gem "beaker-docker", '~> 0.3', require: false
30-
gem "beaker-pe", require: false
39+
gem "beaker-docker", '~> 0.3', require: false
40+
gem "beaker-pe", require: false
3141
gem "beaker-hostgenerator"
3242
gem "beaker-rspec"
3343
gem "beaker-puppet", *location_for(ENV['BEAKER_PUPPET_VERSION'] || '~> 1.22')
34-
gem "github_changelog_generator", require: false
35-
gem "beaker-module_install_helper", require: false
36-
gem "beaker-puppet_install_helper", require: false
37-
gem "nokogiri", require: false
38-
gem "bolt", '~> 3.0', require: false if ENV["GEM_BOLT"]
39-
gem "beaker-task_helper", '~> 1.9', require: false if ENV["GEM_BOLT"]
40-
gem "octokit", '4.21.0', require: false
41-
gem "async", '~> 1.30', require: false
44+
gem "github_changelog_generator", '= 1.16.4', require: false
45+
gem "concurrent-ruby", '= 1.1.10', require: false
46+
gem "beaker-module_install_helper", require: false
47+
gem "beaker-puppet_install_helper", require: false
48+
gem "nokogiri", require: false
49+
gem "bolt", '~> 3.0', require: false if ENV["GEM_BOLT"]
50+
gem "beaker-task_helper", '~> 1.9', require: false if ENV["GEM_BOLT"]
51+
gem "octokit", '4.21.0', require: false
52+
gem "async", '~> 1.30', require: false
4253
end
4354
group :system_tests do
44-
gem "puppet-module-posix-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
45-
gem "puppet-module-win-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
55+
gem "puppet_litmus", '< 1.0.0', require: false, platforms: [:ruby, :x64_mingw]
56+
gem "serverspec", '~> 2.41', require: false
57+
gem "voxpupuli-acceptance"
4658
end
4759

4860
puppet_version = ENV['PUPPET_GEM_VERSION']

Rakefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require 'puppet-syntax/tasks/puppet-syntax'
77
require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any?
88
require 'github_changelog_generator/task' if Bundler.rubygems.find_name('github_changelog_generator').any?
99
require 'puppet-strings/tasks' if Bundler.rubygems.find_name('puppet-strings').any?
10+
require 'voxpupuli/acceptance/rake'
1011

1112
def changelog_user
1213
return unless Rake.application.top_level_tasks.include? "changelog"
@@ -43,6 +44,7 @@ end
4344

4445
PuppetLint.configuration.send('disable_relative')
4546

47+
4648
if Bundler.rubygems.find_name('github_changelog_generator').any?
4749
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
4850
raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil?

docker/deploy.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
file {'/tmp/test-start-file':
1+
file { '/tmp/test-start-file':
22
ensure => file,
33
}

manifests/configure.pp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,4 @@
1515
path => $puppet_agent::params::config,
1616
}
1717
}
18-
1918
}

manifests/init.pp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@
127127
$wait_for_puppet_run = undef,
128128
Array[Puppet_agent::Config] $config = [],
129129
) inherits ::puppet_agent::params {
130-
131130
# The configure class uses $puppet_agent::config to manage settings in
132131
# puppet.conf, and will always be present. It does not require management of
133132
# the agent package. Dependencies for configure will be declared later if the

0 commit comments

Comments
 (0)