onceover 3.22.0 → 5.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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +17 -0
  3. data/.github/workflows/release.yaml +98 -16
  4. data/.github/workflows/tests.yaml +31 -7
  5. data/.gitignore +2 -1
  6. data/.rubocop.yml +10 -702
  7. data/.rubocop_todo.yml +777 -0
  8. data/CHANGELOG.md +1057 -0
  9. data/Gemfile +8 -4
  10. data/LICENSE +202 -0
  11. data/README.md +83 -37
  12. data/Rakefile +26 -14
  13. data/features/auto_vendored.feature +27 -0
  14. data/features/step_definitions/common.rb +5 -5
  15. data/features/support/cache_helper.rb +0 -1
  16. data/features/support/command_helper.rb +0 -2
  17. data/features/support/controlrepo_helper.rb +0 -2
  18. data/features/zzz_run.feature +1 -1
  19. data/lib/onceover/beaker/spec_helper.rb +7 -7
  20. data/lib/onceover/beaker.rb +9 -12
  21. data/lib/onceover/cli/run.rb +1 -0
  22. data/lib/onceover/controlrepo.rb +19 -24
  23. data/lib/onceover/deploy.rb +29 -2
  24. data/lib/onceover/group.rb +1 -3
  25. data/lib/onceover/logger.rb +3 -3
  26. data/lib/onceover/node.rb +0 -2
  27. data/lib/onceover/rake_tasks.rb +10 -4
  28. data/lib/onceover/rspec/formatters.rb +6 -5
  29. data/lib/onceover/runner.rb +3 -3
  30. data/lib/onceover/test.rb +1 -2
  31. data/lib/onceover/testconfig.rb +2 -2
  32. data/lib/onceover/vendored_modules.rb +186 -0
  33. data/onceover.gemspec +23 -21
  34. data/spec/fixtures/controlrepos/caching/spec/factsets/README.md +1 -1
  35. data/spec/fixtures/controlrepos/caching/spec/pre_conditions/README.md +1 -1
  36. data/spec/fixtures/controlrepos/factsets/spec/factsets/README.md +1 -1
  37. data/spec/fixtures/controlrepos/puppet_controlrepo/Gemfile +2 -2
  38. data/spec/fixtures/controlrepos/puppet_controlrepo/Rakefile +1 -1
  39. data/spec/fixtures/controlrepos/vendored/Puppetfile +3 -0
  40. data/spec/fixtures/controlrepos/vendored/Puppetfile.cron +5 -0
  41. data/spec/fixtures/controlrepos/vendored/environment.conf +1 -0
  42. data/spec/fixtures/controlrepos/vendored/site-modules/role/manifests/cron.pp +9 -0
  43. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/augeas_core-puppet_agent-7.30.0.json +1 -0
  44. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/augeas_core-puppet_agent-8.6.0.json +1 -0
  45. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/cron_core-puppet_agent-7.30.0.json +1 -0
  46. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/cron_core-puppet_agent-8.6.0.json +1 -0
  47. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/host_core-puppet_agent-7.30.0.json +1 -0
  48. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/host_core-puppet_agent-8.6.0.json +1 -0
  49. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/mount_core-puppet_agent-7.30.0.json +1 -0
  50. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/mount_core-puppet_agent-8.6.0.json +1 -0
  51. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/repo_tree-puppet_agent-7.30.0.json +1 -0
  52. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/repo_tree-puppet_agent-8.6.0.json +1 -0
  53. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/scheduled_task-puppet_agent-7.30.0.json +1 -0
  54. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/scheduled_task-puppet_agent-8.6.0.json +1 -0
  55. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/selinux_core-puppet_agent-7.30.0.json +1 -0
  56. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/selinux_core-puppet_agent-8.6.0.json +1 -0
  57. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/sshkeys_core-puppet_agent-7.30.0.json +1 -0
  58. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/sshkeys_core-puppet_agent-8.6.0.json +1 -0
  59. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/yumrepo_core-puppet_agent-7.30.0.json +1 -0
  60. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/yumrepo_core-puppet_agent-8.6.0.json +1 -0
  61. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/zfs_core-puppet_agent-7.30.0.json +1 -0
  62. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/zfs_core-puppet_agent-8.6.0.json +1 -0
  63. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/zone_core-puppet_agent-7.30.0.json +1 -0
  64. data/spec/fixtures/controlrepos/vendored/spec/vendored_modules/zone_core-puppet_agent-8.6.0.json +1 -0
  65. data/spec/onceover/controlrepo_spec.rb +1 -1
  66. data/templates/factsets_README.md.erb +5 -2
  67. data/templates/pre_conditions_README.md.erb +1 -1
  68. data/templates/spec_helper.rb.erb +0 -1
  69. data/templates/testconfig_Rakefile.erb +2 -2
  70. metadata +111 -81
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3673b1ea11e712766d85ddd0c97ff68671d698acdb0fd0f0e516182f18a3ef1
4
- data.tar.gz: 11037d12d4734ad69b94f335824154dc5056b61adb118c7a32a10ebb8f1034e7
3
+ metadata.gz: 13b36f4288ac28fad2e2dacae0a53bbac7e9d060607172b291f8dba9c7fe11c9
4
+ data.tar.gz: 5f492f55c749369cb49367670868379fd540b28cd30349849f2e5cd122139ce1
5
5
  SHA512:
6
- metadata.gz: 2294e1581eadcda9f2305f2c63941c7f58d00ed9e232bd19b3f40a58b1e15a7c8aa6b56750c3a480694f3e2fdc2cf74b314363cf5fca84c4a07b24607cbc6d94
7
- data.tar.gz: 250fed721814af4074477bd83d9ca77f41442c39d2476b09bd0fe15fba675a0d604077ca69d33cf861a4d318d4fe4785580b6dd8b30989ea5c7cd5e628314897
6
+ metadata.gz: e2c829ee671937eef47fdf2ee390547bfe1b4aff450508f415fe455a05e9f10cf17095dfc01aa0253182b652e26929c15303346fbbcd9e7db497fb8f2cc1c00b
7
+ data.tar.gz: 25485562b7c19edce1fd0aa3808d2071612583b52508c96a5c056c89cb1e6eab84cc0f7433df168982f3df307bb88069b2a724a465796ee870c27cd1178648f9
@@ -0,0 +1,17 @@
1
+ version: 2
2
+ updates:
3
+ # raise PRs for gem updates
4
+ - package-ecosystem: bundler
5
+ directory: "/"
6
+ schedule:
7
+ interval: daily
8
+ time: "13:00"
9
+ open-pull-requests-limit: 10
10
+
11
+ # Maintain dependencies for GitHub Actions
12
+ - package-ecosystem: github-actions
13
+ directory: "/"
14
+ schedule:
15
+ interval: daily
16
+ time: "13:00"
17
+ open-pull-requests-limit: 10
@@ -1,24 +1,106 @@
1
- name: Publish Gem
1
+ ---
2
+ name: Gem Release
2
3
 
3
4
  on:
4
- workflow_dispatch:
5
+ push:
6
+ tags:
7
+ - '*'
8
+
9
+ permissions: {}
10
+
5
11
  jobs:
6
- build:
7
- runs-on: ubuntu-latest
8
- permissions:
9
- contents: write
12
+ build-release:
13
+ # Prevent releases from forked repositories
14
+ if: github.repository_owner == 'voxpupuli'
15
+ name: Build the gem
16
+ runs-on: ubuntu-24.04
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Install Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: 'ruby'
23
+ - name: Build gem
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
10
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
11
40
  steps:
12
- - uses: actions/checkout@v3
13
- - uses: fregante/setup-git-user@v2
14
- - uses: ruby/setup-ruby@v1
41
+ - name: Download gem from GitHub cache
42
+ uses: actions/download-artifact@v4
15
43
  with:
16
- ruby-version: 3.2.3
17
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
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
18
50
 
19
- - name: Release Gem
20
- uses: cadwallion/publish-rubygems-action@master
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
21
64
  env:
22
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23
- RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
24
- RELEASE_COMMAND: bundle exec rake release
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/configure-rubygems-credentials@v1.0.0
80
+ - name: Publish gem to rubygems.org
81
+ shell: bash
82
+ run: gem push *.gem
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
104
+ run: |
105
+ gem install rubygems-await
106
+ gem await *.gem
@@ -1,9 +1,26 @@
1
1
  name: Tests
2
+
2
3
  on:
3
- - push
4
- - pull_request
4
+ pull_request: {}
5
+ push:
6
+ branches:
7
+ - master
8
+
5
9
  jobs:
6
- full_tests:
10
+ rubocop:
11
+ env:
12
+ BUNDLE_WITHOUT: release
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - name: Install Ruby ${{ matrix.ruby }}
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: "3.3"
20
+ bundler-cache: true
21
+ - name: Run Rubocop
22
+ run: bundle exec rake rubocop
23
+ test:
7
24
  strategy:
8
25
  fail-fast: false
9
26
  matrix:
@@ -11,18 +28,16 @@ jobs:
11
28
  - windows-latest
12
29
  - ubuntu-latest
13
30
  - macos-latest
31
+ - ubuntu-24.04-arm
14
32
  puppet:
15
- - "~> 7.0"
16
33
  - "~> 8.0"
17
34
  include:
18
- - puppet: "~> 7.0"
19
- ruby: 2.7
20
35
  - puppet: "~> 8.0"
21
36
  ruby: 3.2
22
37
 
23
38
  runs-on: ${{ matrix.os }}
24
39
  steps:
25
- - uses: actions/checkout@v2
40
+ - uses: actions/checkout@v4
26
41
  - uses: ruby/setup-ruby@v1
27
42
  with:
28
43
  ruby-version: ${{ matrix.ruby }}
@@ -35,3 +50,12 @@ jobs:
35
50
  - env:
36
51
  PUPPET_VERSION: ${{ matrix.puppet }}
37
52
  run: bundle exec rake full_tests
53
+
54
+ tests:
55
+ needs:
56
+ - rubocop
57
+ - test
58
+ runs-on: ubuntu-latest
59
+ name: Test suite
60
+ steps:
61
+ - run: echo Test suite completed
data/.gitignore CHANGED
@@ -8,7 +8,8 @@ Gemfile.local
8
8
  /.bin
9
9
  /.ruby-version
10
10
  tmp
11
- vendor
11
+ /vendor
12
+ /.vendor
12
13
 
13
14
  # Vim
14
15
  /.projections.json