beaker-google 1.1.0 → 1.3.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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/.github/release.yml +41 -0
  3. data/.github/workflows/ci.yml +30 -17
  4. data/.github/workflows/release.yml +91 -17
  5. data/.gitignore +1 -0
  6. data/.rubocop.yml +4 -518
  7. data/.rubocop_todo.yml +20 -0
  8. data/.simplecov +2 -0
  9. data/CHANGELOG.md +50 -1
  10. data/Gemfile +13 -2
  11. data/README.md +2 -2
  12. data/Rakefile +23 -6
  13. data/beaker-google.gemspec +27 -23
  14. data/bin/beaker-google +1 -0
  15. data/lib/beaker/hypervisor/google.rb +5 -1
  16. data/lib/beaker/hypervisor/google_compute.rb +55 -25
  17. data/lib/beaker/hypervisor/google_compute_helper.rb +599 -581
  18. data/lib/beaker-google/version.rb +3 -1
  19. data/spec/classes/beaker/google_compute_constants_and_defaults_spec.rb +141 -0
  20. data/spec/classes/beaker/google_compute_helper_api_version_spec.rb +37 -0
  21. data/spec/classes/beaker/google_compute_helper_configuration_validation_spec.rb +100 -0
  22. data/spec/classes/beaker/google_compute_helper_constants_and_defaults_spec.rb +66 -0
  23. data/spec/classes/beaker/google_compute_helper_edge_cases_spec.rb +173 -0
  24. data/spec/classes/beaker/google_compute_helper_error_handling_spec.rb +105 -0
  25. data/spec/classes/beaker/google_compute_helper_spec.rb +368 -0
  26. data/spec/classes/beaker/google_compute_helper_utilities_spec.rb +95 -0
  27. data/spec/classes/beaker/google_compute_initialization_spec.rb +52 -0
  28. data/spec/classes/beaker/google_compute_provision_spec.rb +68 -0
  29. data/spec/classes/beaker/google_compute_spec.rb +95 -0
  30. data/spec/classes/beaker/google_compute_ssh_key_management_spec.rb +115 -0
  31. data/spec/classes/beaker/google_spec.rb +68 -0
  32. data/spec/classes/beaker-google/beaker_google_version_spec.rb +19 -0
  33. data/spec/classes/beaker_integration_spec.rb +67 -0
  34. data/spec/spec_helper.rb +45 -0
  35. data/spec/support/google_compute_shared_setup.rb +138 -0
  36. data/spec/support/shared_mocks.rb +89 -0
  37. metadata +102 -38
  38. data/.github/workflows/codeql-analysis.yml +0 -70
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75a97e86c7f87f03623670307b3473519a9b0661137c217f6ce255bbb4cf7eb7
4
- data.tar.gz: b5a2deec42679666ed39aa20e853c04e89d050f0f0dd37cb0511614dbf7b3a52
3
+ metadata.gz: ad1087b2a3feb7c707d5e76d9a7290c1aee3c7b7d70d976f547547332bf759c2
4
+ data.tar.gz: 0545ab3de6ddcf6ff30e5a40185acdeb8c840bd89656af1b8cd257b46e67e0a0
5
5
  SHA512:
6
- metadata.gz: 7294d81451483860acd2db28341cd434a3d4f68b5c4be7720b870260155da057626a768209a38fde29165dbf75a7c75b47ac4b8482a48ccd60348da19ec677c7
7
- data.tar.gz: b5b818fda45a9baa3e83fb74596bb7fa7a11f7ae25dbe52234d3257565a88ba07b9ea956a3d3c4ee1f7fe62c7282e3377ce8f61b9d85326503635417f90240a1
6
+ metadata.gz: 3b0be0f5e35f3810a556687d6fb4724b0e40890f920b8c410fe9d87a57c13a51371156c694cedde8313f0b5263ec087ac90c1eb8aaed8b5ed67682dd827d4028
7
+ data.tar.gz: 8332beb8864b708e07a613f84b06ae82dcce3c505059d7a374af5434a1bf51a0e35b06178b7eafaaf431aa0eb270847c7ed87994e73644faf7256517104d2386
@@ -0,0 +1,41 @@
1
+ ---
2
+ # https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
3
+
4
+ changelog:
5
+ exclude:
6
+ labels:
7
+ - duplicate
8
+ - invalid
9
+ - modulesync
10
+ - question
11
+ - skip-changelog
12
+ - wont-fix
13
+ - wontfix
14
+ - github_actions
15
+
16
+ categories:
17
+ - title: Breaking Changes 🛠
18
+ labels:
19
+ - backwards-incompatible
20
+
21
+ - title: New Features 🎉
22
+ labels:
23
+ - enhancement
24
+
25
+ - title: Bug Fixes 🐛
26
+ labels:
27
+ - bug
28
+ - bugfix
29
+
30
+ - title: Documentation Updates 📚
31
+ labels:
32
+ - documentation
33
+ - docs
34
+
35
+ - title: Dependency Updates ⬆️
36
+ labels:
37
+ - dependencies
38
+
39
+ - title: Other Changes
40
+ labels:
41
+ - "*"
@@ -3,22 +3,24 @@ name: Test
3
3
  on:
4
4
  - pull_request
5
5
 
6
+ permissions:
7
+ contents: read
8
+
6
9
  env:
7
10
  BUNDLE_WITHOUT: release
8
11
 
9
12
  jobs:
10
- # rubocop is currently not included in Gemfile
11
- # rubocop:
12
- # runs-on: ubuntu-latest
13
- # steps:
14
- # - uses: actions/checkout@v4
15
- # - name: Install Ruby 3.1
16
- # uses: ruby/setup-ruby@v1
17
- # with:
18
- # ruby-version: "3.1"
19
- # bundler-cache: true
20
- # - name: Run rubocop
21
- # run: bundle exec rake rubocop
13
+ rubocop:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v7
17
+ - name: Install Ruby 3.4
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: "3.4"
21
+ bundler-cache: true
22
+ - name: Run rubocop
23
+ run: bundle exec rake rubocop
22
24
  test:
23
25
  runs-on: ubuntu-latest
24
26
  strategy:
@@ -28,19 +30,30 @@ jobs:
28
30
  - ruby: "2.7"
29
31
  - ruby: "3.0"
30
32
  - ruby: "3.1"
33
+ - ruby: "3.2"
34
+ - ruby: "3.3"
35
+ - ruby: "3.4"
31
36
  coverage: "yes"
32
37
  env:
33
38
  COVERAGE: ${{ matrix.coverage }}
34
39
  name: Ruby ${{ matrix.ruby }}
35
40
  steps:
36
- - uses: actions/checkout@v4
41
+ - uses: actions/checkout@v7
37
42
  - name: Install Ruby ${{ matrix.ruby }}
38
43
  uses: ruby/setup-ruby@v1
39
44
  with:
40
45
  ruby-version: ${{ matrix.ruby }}
41
46
  bundler-cache: true
42
47
  - name: Verify gem builds
43
- run: gem build *.gemspec
44
- # Currently no tests are defined in this gem
45
- # - name: Run spec tests
46
- # run: bundle exec rake
48
+ run: gem build --strict --verbose *.gemspec
49
+ - name: Run spec tests
50
+ run: bundle exec rake
51
+
52
+ tests:
53
+ needs:
54
+ - rubocop
55
+ - test
56
+ runs-on: ubuntu-latest
57
+ name: Test suite
58
+ steps:
59
+ - run: echo Test suite completed
@@ -1,32 +1,106 @@
1
- name: Release
1
+ ---
2
+ name: Gem Release
2
3
 
3
4
  on:
4
5
  push:
5
6
  tags:
6
7
  - '*'
7
8
 
9
+ permissions: {}
10
+
8
11
  jobs:
9
- release:
10
- runs-on: ubuntu-latest
12
+ build-release:
13
+ # Prevent releases from forked repositories
11
14
  if: github.repository_owner == 'voxpupuli'
15
+ name: Build the gem
16
+ runs-on: ubuntu-24.04
12
17
  steps:
13
- - uses: actions/checkout@v4
14
- - name: Install Ruby 3.1
18
+ - uses: actions/checkout@v7
19
+ - name: Install Ruby
15
20
  uses: ruby/setup-ruby@v1
16
21
  with:
17
- ruby-version: '3.1'
18
- env:
19
- BUNDLE_WITHOUT: release
22
+ ruby-version: 'ruby'
20
23
  - name: Build gem
21
- run: gem build *.gemspec
24
+ shell: bash
25
+ run: gem build --verbose *.gemspec
26
+ - name: Upload gem to GitHub cache
27
+ uses: actions/upload-artifact@v7
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@v8
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@v8
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@v8
77
+ with:
78
+ name: gem-artifact
79
+ - uses: rubygems/configure-rubygems-credentials@v2.1.0
22
80
  - name: Publish gem to rubygems.org
81
+ shell: bash
23
82
  run: gem push *.gem
24
- env:
25
- GEM_HOST_API_KEY: '${{ secrets.RUBYGEMS_AUTH_TOKEN }}'
26
- - 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@v8
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
27
104
  run: |
28
- mkdir -p ~/.gem
29
- echo ":github: Bearer ${{ secrets.GITHUB_TOKEN }}" >> ~/.gem/credentials
30
- chmod 0600 ~/.gem/credentials
31
- - name: Publish gem to GitHub packages
32
- run: gem push --key github --host https://rubygems.pkg.github.com/voxpupuli *.gem
105
+ gem install rubygems-await
106
+ gem await *.gem
data/.gitignore CHANGED
@@ -12,6 +12,7 @@ coverage
12
12
  .bundle
13
13
  .vendor
14
14
  _vendor
15
+ /vendor/
15
16
  tmp/
16
17
  doc
17
18
  # JetBrains IDEA