Skip to content

Commit c0bbf71

Browse files
authored
Merge pull request #99 from rwaffen/updates
feat: switch to openvox, adapt new release ci, switch to ruby 3.2
2 parents c1baf08 + 3caca77 commit c0bbf71

File tree

6 files changed

+106
-31
lines changed

6 files changed

+106
-31
lines changed

.github/workflows/release.yml

Lines changed: 90 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,106 @@
1-
name: Release
1+
---
2+
name: Gem Release
23

34
on:
45
push:
56
tags:
67
- '*'
78

9+
permissions: {}
10+
811
jobs:
9-
release:
10-
runs-on: ubuntu-latest
12+
build-release:
13+
# Prevent releases from forked repositories
1114
if: github.repository_owner == 'voxpupuli'
15+
name: Build the gem
16+
runs-on: ubuntu-24.04
1217
steps:
1318
- uses: actions/checkout@v5
14-
- name: Install Ruby 3.0
19+
- name: Install Ruby
1520
uses: ruby/setup-ruby@v1
1621
with:
17-
ruby-version: '3.0'
18-
bundler: 'none'
19-
env:
20-
BUNDLE_WITHOUT: release:development:rubocop
22+
ruby-version: 'ruby'
2123
- name: Build gem
22-
run: gem build --strict --verbose *.gemspec
24+
shell: bash
25+
run: gem build --verbose *.gemspec
26+
- name: Upload gem to GitHub cache
27+
uses: actions/upload-artifact@v4
28+
with:
29+
name: gem-artifact
30+
path: '*.gem'
31+
retention-days: 1
32+
compression-level: 0
33+
34+
create-github-release:
35+
needs: build-release
36+
name: Create GitHub release
37+
runs-on: ubuntu-24.04
38+
permissions:
39+
contents: write # clone repo and create release
40+
steps:
41+
- name: Download gem from GitHub cache
42+
uses: actions/download-artifact@v4
43+
with:
44+
name: gem-artifact
45+
- name: Create Release
46+
shell: bash
47+
env:
48+
GH_TOKEN: ${{ github.token }}
49+
run: gh release create --repo ${{ github.repository }} ${{ github.ref_name }} --generate-notes *.gem
50+
51+
release-to-github:
52+
needs: build-release
53+
name: Release to GitHub
54+
runs-on: ubuntu-24.04
55+
permissions:
56+
packages: write # publish to rubygems.pkg.github.com
57+
steps:
58+
- name: Download gem from GitHub cache
59+
uses: actions/download-artifact@v4
60+
with:
61+
name: gem-artifact
62+
- name: Publish gem to GitHub packages
63+
run: gem push --host https://rubygems.pkg.github.com/${{ github.repository_owner }} *.gem
64+
env:
65+
GEM_HOST_API_KEY: ${{ secrets.GITHUB_TOKEN }}
66+
67+
release-to-rubygems:
68+
needs: build-release
69+
name: Release gem to rubygems.org
70+
runs-on: ubuntu-24.04
71+
environment: release # recommended by rubygems.org
72+
permissions:
73+
id-token: write # rubygems.org authentication
74+
steps:
75+
- name: Download gem from GitHub cache
76+
uses: actions/download-artifact@v4
77+
with:
78+
name: gem-artifact
79+
- uses: rubygems/[email protected]
2380
- name: Publish gem to rubygems.org
81+
shell: bash
2482
run: gem push *.gem
25-
env:
26-
GEM_HOST_API_KEY: '${{ secrets.RUBYGEMS_AUTH_TOKEN }}'
27-
- name: Setup GitHub packages access
83+
84+
release-verification:
85+
name: Check that all releases are done
86+
runs-on: ubuntu-24.04
87+
permissions:
88+
contents: read # minimal permissions that we have to grant
89+
needs:
90+
- create-github-release
91+
- release-to-github
92+
- release-to-rubygems
93+
steps:
94+
- name: Download gem from GitHub cache
95+
uses: actions/download-artifact@v4
96+
with:
97+
name: gem-artifact
98+
- name: Install Ruby
99+
uses: ruby/setup-ruby@v1
100+
with:
101+
ruby-version: 'ruby'
102+
- name: Wait for release to propagate
103+
shell: bash
28104
run: |
29-
mkdir -p ~/.gem
30-
echo ":github: Bearer ${{ secrets.GITHUB_TOKEN }}" >> ~/.gem/credentials
31-
chmod 0600 ~/.gem/credentials
32-
- name: Publish gem to GitHub packages
33-
run: gem push --key github --host https://rubygems.pkg.github.com/${{ github.repository_owner }} *.gem
105+
gem install rubygems-await
106+
gem await *.gem

.github/workflows/test.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Setup ruby
1919
uses: ruby/setup-ruby@v1
2020
with:
21-
ruby-version: '3.0'
21+
ruby-version: '3.2'
2222
bundler-cache: true
2323
- name: Run rake rubocop
2424
run: bundle exec rake rubocop
@@ -28,11 +28,10 @@ jobs:
2828
fail-fast: false
2929
matrix:
3030
include:
31-
- ruby: "2.7"
32-
- ruby: "3.0"
33-
- ruby: "3.1"
34-
coverage: "yes"
3531
- ruby: "3.2"
32+
coverage: "yes"
33+
- ruby: "3.3"
34+
- ruby: "3.4"
3635
env:
3736
COVERAGE: ${{ matrix.coverage }}
3837
name: Ruby ${{ matrix.ruby }}

lib/puppet-lint/plugins/check_ghostbuster_facts.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def check
2828
return if m.nil?
2929

3030
File.foreach(path) do |line|
31-
if line =~ /Facter.add\(["':](?<fact>[^"'\)]+)["']?\)/
31+
if line =~ /Facter.add\(["':](?<fact>[^"')]+)["']?\)/
3232
fact_name = Regexp.last_match(:fact)
3333

3434
found = false

lib/puppet-lint/plugins/check_ghostbuster_hiera_files.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def regexprs
4141
path_datadir = Regexp.escape((hierarchy['datadir'] || default_datadir).chomp('/'))
4242
([*hierarchy['path']] + [*hierarchy['paths']]).each do |level|
4343
level = File.join(path_datadir, level)
44-
regex = Regexp.new(level.gsub(/%\{(::)?(trusted|server_facts|facts)\.[^\}]+\}/, '(.+)').gsub(/%\{[^\}]+\}/, '.+'))
44+
regex = Regexp.new(level.gsub(/%\{(::)?(trusted|server_facts|facts)\.[^}]+\}/, '(.+)').gsub(/%\{[^}]+\}/, '.+'))
4545
facts = level.match(regex).captures.map { |f| f[/%{(::)?(trusted|server_facts|facts)\.(.+)}/, 3] }
4646
regs[regex] = facts
4747
end

puppet-ghostbuster.gemspec

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,23 @@ Gem::Specification.new do |s|
1212
s.description = 'Try and find dead code in Puppet receipts'
1313
s.licenses = 'Apache-2.0'
1414

15-
s.required_ruby_version = '>= 2.7'
15+
s.required_ruby_version = '>= 3.2'
1616

1717
s.files = `git ls-files`.split("\n")
1818
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
1919

20+
s.add_dependency 'puppet-lint', '>= 5.0', '< 6.0'
21+
2022
s.add_development_dependency 'coveralls', '>= 0.8', '< 0.9'
2123
s.add_development_dependency 'jgrep', '>= 1.0.0', '< 2.0.0'
2224
s.add_development_dependency 'rake', '>= 13.0.0', '< 14.0.0'
2325
s.add_development_dependency 'rspec', '~> 3.0'
2426
s.add_development_dependency 'rspec-collection_matchers', '~> 1.0'
2527
s.add_development_dependency 'rspec-its', '~> 1.0'
26-
s.add_development_dependency 'voxpupuli-rubocop', '~> 2.8.0'
27-
s.add_runtime_dependency 'json', '>= 2.0', '< 3.0'
28-
s.add_runtime_dependency 'puppet', '>= 6.0', '< 9.0'
29-
s.add_dependency 'puppet-lint', '>= 1.0', '< 5.0'
30-
s.add_runtime_dependency 'puppetdb-ruby', '~> 1.1', '>= 1.1.1'
28+
s.add_development_dependency 'voxpupuli-rubocop', '~> 5.0.0'
29+
30+
s.add_dependency 'json', '>= 2.0', '< 3.0'
31+
s.add_dependency 'openvox', '>= 8.0', '< 9.0'
32+
s.add_dependency 'puppetdb-ruby', '~> 1.1', '>= 1.1.1'
33+
s.add_dependency 'syslog', '~> 0.3.0'
3134
end

spec/spec_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
class PuppetDB::Client
77
def puppetdb_to_jgrep(query)
8-
if query[0] == :and || query[0] == :or
8+
if %i[and or].include?(query[0])
99
"(#{puppetdb_to_jgrep(query[1])} #{query[0]} #{puppetdb_to_jgrep(query[2])})"
1010
else
1111
"#{[query[1]].flatten.join('.')}#{query[0]}#{query[2]}"

0 commit comments

Comments
 (0)