beaker-docker 3.1.3 → 3.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f1ee5ab53b86ffda7555b85471e7427d811d910ae943fdc60618dc71247780d
4
- data.tar.gz: b88d72d90e95dbe4a986cf9444fedd2eca6eeee3c59efea73ad1e044afe72da0
3
+ metadata.gz: 3558d672e0a02e7a5847184d70b3003b173e501ff8b1023a9f606bb46c6a4852
4
+ data.tar.gz: '09fea7467dc98209892cecefc0be6abf7d23929cc19f6625228c333b0f1187ee'
5
5
  SHA512:
6
- metadata.gz: 404f1d4b7d9c644583a76d4e4be545c613126d80be170b464a69a64d54abaec614697b728ffb52685d0c29bdca0970f2df3d9cfb6711ac3071d7433e3be196fa
7
- data.tar.gz: c0634e2844595b1e691042ad3f65041fffa9a218e47c47214ddb9eff0de1d1ba4569a692a2c27d74cd09927be3a609e1648f825caf34e06b68ce68cdc8f7b7fc
6
+ metadata.gz: e8afa62bf82f407c4c815503230b5b1eb5411abe98fc47c733bd597dee29cff12ab4519e33a694f5e55e65bf763c2278d1782b4e4c55f4cb8f048ef0a8a4662b
7
+ data.tar.gz: 369b61ead22fc95defd7a538d3f1e1bdba857d6db823107f68fe00cc6072b2b7023d2038924d55353987d6cffa9687f9493808c09c33d5d73557dcc91d0a88d3
@@ -17,14 +17,14 @@ jobs:
17
17
  steps:
18
18
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
19
19
  - name: Install Ruby
20
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
20
+ uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
21
21
  with:
22
22
  ruby-version: 'ruby'
23
23
  - name: Build gem
24
24
  shell: bash
25
25
  run: gem build --verbose *.gemspec
26
26
  - name: Upload gem to GitHub cache
27
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
27
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
28
28
  with:
29
29
  name: gem-artifact
30
30
  path: '*.gem'
@@ -39,7 +39,7 @@ jobs:
39
39
  contents: write # clone repo and create release
40
40
  steps:
41
41
  - name: Download gem from GitHub cache
42
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
42
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
43
43
  with:
44
44
  name: gem-artifact
45
45
  - name: Create Release
@@ -56,7 +56,7 @@ jobs:
56
56
  packages: write # publish to rubygems.pkg.github.com
57
57
  steps:
58
58
  - name: Download gem from GitHub cache
59
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
59
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
60
60
  with:
61
61
  name: gem-artifact
62
62
  - name: Publish gem to GitHub packages
@@ -73,7 +73,7 @@ jobs:
73
73
  id-token: write # rubygems.org authentication
74
74
  steps:
75
75
  - name: Download gem from GitHub cache
76
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
76
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
77
77
  with:
78
78
  name: gem-artifact
79
79
  - uses: rubygems/configure-rubygems-credentials@dc5a8d8553e6ee01fc26761a49e99e733d17954a # v2.1.0
@@ -92,11 +92,11 @@ jobs:
92
92
  - release-to-rubygems
93
93
  steps:
94
94
  - name: Download gem from GitHub cache
95
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
95
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
96
96
  with:
97
97
  name: gem-artifact
98
98
  - name: Install Ruby
99
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
99
+ uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
100
100
  with:
101
101
  ruby-version: 'ruby'
102
102
  - name: Wait for release to propagate
@@ -15,10 +15,11 @@ jobs:
15
15
  runs-on: ubuntu-24.04
16
16
  outputs:
17
17
  ruby: ${{ steps.ruby.outputs.versions }}
18
+ latest_ruby: ${{ steps.latest_ruby.outputs.version }}
18
19
  steps:
19
20
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
20
21
  - name: Install Ruby 4.0
21
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
22
+ uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
22
23
  with:
23
24
  ruby-version: '4.0'
24
25
  bundler-cache: true
@@ -26,6 +27,9 @@ jobs:
26
27
  run: bundle exec rake rubocop
27
28
  - id: ruby
28
29
  uses: voxpupuli/ruby-version@be0467ce7366d206b2e87f5b7a032a030120b7cb # 2.0.0
30
+ - id: latest_ruby
31
+ name: Determine newest supported Ruby
32
+ run: echo "version=$(echo '${{ steps.ruby.outputs.versions }}' | jq -r 'max_by(split(".") | map(tonumber))')" >> "$GITHUB_OUTPUT"
29
33
 
30
34
  rspec:
31
35
  runs-on: ubuntu-24.04
@@ -38,7 +42,7 @@ jobs:
38
42
  steps:
39
43
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
40
44
  - name: Install Ruby ${{ matrix.ruby }}
41
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
45
+ uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
42
46
  with:
43
47
  ruby-version: ${{ matrix.ruby }}
44
48
  bundler-cache: true
@@ -58,32 +62,84 @@ jobs:
58
62
  steps:
59
63
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
60
64
  - name: Install Ruby ${{ matrix.ruby }}
61
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
65
+ uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
62
66
  with:
63
67
  ruby-version: ${{ matrix.ruby }}
64
68
  bundler-cache: true
65
69
  - name: Run acceptance tests
66
70
  run: bundle exec rake test:acceptance
67
71
 
68
- # this job is currently broken because puppet/puppet-dev-tools:2023-02-24-1bca42e is too old
69
- #beaker_in_container:
70
- # runs-on: ubuntu-24.04
71
- # needs: rubocop_and_matrix
72
- # name: Docker - Beaker in container connection test
73
- # steps:
74
- # - uses: actions/checkout@v7
75
- # # use this and not container key from gha to not have a docker network from github
76
- # - name: Run Beaker in docker container
77
- # uses: addnab/docker-run-action@v3
78
- # with:
79
- # image: puppet/puppet-dev-tools:2023-02-24-1bca42e
80
- # options: -v ${{ github.workspace }}:/work
81
- # run: |
82
- # cd /work
83
- # ls -la
84
- # bundle install
85
- # export DOCKER_IN_DOCKER=true
86
- # bundle exec rake test:acceptance
72
+ # Run Beaker itself inside a container talking to the host daemon, so the
73
+ # test containers are siblings. Covers both connection routing modes:
74
+ # gateway - in_container? detects /.dockerenv and connects via the bridge
75
+ # gateway and published ssh port
76
+ # dind - DOCKER_IN_DOCKER=true forces a direct connection to the test
77
+ # container's network IP
78
+ beaker_in_container:
79
+ runs-on: ubuntu-24.04
80
+ needs: rubocop_and_matrix
81
+ strategy:
82
+ fail-fast: false
83
+ matrix:
84
+ mode: [gateway, dind]
85
+ name: Docker - Beaker in container connection test (${{ matrix.mode }})
86
+ timeout-minutes: 15
87
+ steps:
88
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
89
+ - name: Run Beaker in docker container
90
+ run: |
91
+ docker run --rm \
92
+ -v "$PWD:/work" -w /work \
93
+ -v /var/run/docker.sock:/var/run/docker.sock \
94
+ ${{ matrix.mode == 'dind' && '-e DOCKER_IN_DOCKER=true' || '' }} \
95
+ ruby:${{ needs.rubocop_and_matrix.outputs.latest_ruby }} \
96
+ bash -c 'bundle install && bundle exec rake test:acceptance'
97
+
98
+ # Same as beaker_in_container, but with podman. The gateway mode exercises
99
+ # the /run/.containerenv detection in in_container?.
100
+ # Rootless podman publishes ports only in the host network namespace, so
101
+ # they are not reachable at the bridge gateway from a sibling container and
102
+ # gateway mode has to use rootful podman. dind mode connects to sibling IPs
103
+ # directly, which rootless podman supports once the Beaker container joins
104
+ # the default bridge network instead of the slirp4netns one a plain run gets.
105
+ # This needs netavark >= 1.6.0: older versions turn the 0.0.0.0 host ip of a
106
+ # port binding into a DNAT rule that never matches, so the gateway connection
107
+ # lands on conmon's port reservation socket and hangs. ubuntu-24.04 ships
108
+ # netavark 1.4.0, ubuntu-26.04 ships podman 5.7.
109
+ beaker_in_podman:
110
+ runs-on: ubuntu-26.04
111
+ needs: rubocop_and_matrix
112
+ strategy:
113
+ fail-fast: false
114
+ matrix:
115
+ mode: [gateway, dind]
116
+ name: Podman - Beaker in container connection test (${{ matrix.mode }})
117
+ timeout-minutes: 15
118
+ steps:
119
+ - name: Start podman
120
+ run: |
121
+ sudo systemctl stop docker.service docker.socket
122
+ sudo systemctl start podman.socket
123
+ systemctl start --user podman.socket
124
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
125
+ - name: Run Beaker in podman container
126
+ run: |
127
+ if [ "${{ matrix.mode }}" = gateway ]; then
128
+ podman='sudo podman'
129
+ socket=/run/podman/podman.sock
130
+ else
131
+ podman=podman
132
+ socket="/run/user/$(id -u)/podman/podman.sock"
133
+ fi
134
+ $podman run --rm \
135
+ -v "$PWD:/work" -w /work \
136
+ -v "$socket:/run/podman/podman.sock" \
137
+ -e DOCKER_HOST=unix:///run/podman/podman.sock \
138
+ --network podman \
139
+ --security-opt label=disable \
140
+ ${{ matrix.mode == 'dind' && '-e DOCKER_IN_DOCKER=true' || '' }} \
141
+ ruby:${{ needs.rubocop_and_matrix.outputs.latest_ruby }} \
142
+ bash -c 'bundle install && bundle exec rake test:acceptance'
87
143
 
88
144
  # verifies that podman service is a dropin replacement for docker
89
145
  podman:
@@ -101,7 +157,7 @@ jobs:
101
157
  echo "DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock" >> "$GITHUB_ENV"
102
158
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
103
159
  - name: Install Ruby ${{ matrix.ruby }}
104
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
160
+ uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
105
161
  with:
106
162
  ruby-version: ${{ matrix.ruby }}
107
163
  bundler-cache: true
@@ -113,7 +169,8 @@ jobs:
113
169
  needs:
114
170
  - rubocop_and_matrix
115
171
  - docker
116
- # - beaker_in_container
172
+ - beaker_in_container
173
+ - beaker_in_podman
117
174
  - podman
118
175
  - rspec
119
176
  runs-on: ubuntu-24.04
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.2.0](https://github.com/voxpupuli/beaker-docker/tree/3.2.0) (2026-11-02)
4
+
5
+ [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/3.1.3...3.2.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Support el10 hosts [\#212](https://github.com/voxpupuli/beaker-docker/pull/212) ([treydock](https://github.com/treydock))
10
+ - CI: re-enable beaker-in-container acceptance jobs [\#198](https://github.com/voxpupuli/beaker-docker/pull/198) ([miharp](https://github.com/miharp))
11
+
3
12
  ## [3.1.3](https://github.com/voxpupuli/beaker-docker/tree/3.1.3) (2026-08-21)
4
13
 
5
14
  [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/3.1.2...3.1.3)
@@ -10,6 +19,7 @@
10
19
 
11
20
  **Closed issues:**
12
21
 
22
+ - CI: re-enable the beaker\_in\_container acceptance job to cover in-container connection routing [\#195](https://github.com/voxpupuli/beaker-docker/issues/195)
13
23
  - `in_container?` only checks `/.dockerenv`, so the gateway connection path never triggers under Podman [\#193](https://github.com/voxpupuli/beaker-docker/issues/193)
14
24
  - `DOCKER_IN_DOCKER=true` crashes with NoMethodError on Podman 5: `Networks[NetworkMode]` lookup assumes Docker's network naming [\#192](https://github.com/voxpupuli/beaker-docker/issues/192)
15
25
 
data/Gemfile CHANGED
@@ -6,5 +6,5 @@ gemspec
6
6
 
7
7
  group :release, optional: true do
8
8
  gem 'faraday-retry', '~> 2.1', require: false
9
- gem 'github_changelog_generator', '~> 1.16.4', require: false
9
+ gem 'github_changelog_generator', '~> 1.18', require: false
10
10
  end
@@ -12,6 +12,13 @@ HOSTS:
12
12
  - classifier
13
13
  - default
14
14
  docker_cmd: '["/sbin/init"]'
15
+ centos10:
16
+ platform: el-10-x86_64
17
+ hypervisor: docker
18
+ image: quay.io/centos/centos:stream10
19
+ roles:
20
+ - agent
21
+ docker_cmd: '["/sbin/init"]'
15
22
  debian12:
16
23
  platform: debian-12-x86_64
17
24
  hypervisor: docker
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_development_dependency 'irb', '< 2'
31
31
  s.add_development_dependency 'rake', '~> 13.0'
32
32
  s.add_development_dependency 'rspec', '~> 3.0'
33
- s.add_development_dependency 'voxpupuli-rubocop', '~> 5.1.0'
33
+ s.add_development_dependency 'voxpupuli-rubocop', '~> 5.3.0'
34
34
 
35
35
  # Run time dependencies
36
36
  s.add_dependency 'beaker', '>= 4', '< 8'
@@ -522,7 +522,7 @@ module Beaker
522
522
  RUN apt-get update \
523
523
  && apt-get install -y openssh-server openssh-client #{additional_packages.join(' ')}
524
524
  DF
525
- when /el-[89]/, /fedora-(2[2-9]|3)/, /amazon-2023/
525
+ when /el-([8-9]|10)/, /fedora-(2[2-9]|3)/, /amazon-2023/
526
526
  dockerfile += <<~DF
527
527
  RUN dnf clean all \
528
528
  && dnf install -y sudo openssh-server openssh-clients #{additional_packages.join(' ')} \
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BeakerDocker
4
- VERSION = '3.1.3'
4
+ VERSION = '3.2.0'
5
5
  end
@@ -8,6 +8,7 @@ module Beaker
8
8
  'ubuntu-14.04-x86_64',
9
9
  'fedora-22-x86_64',
10
10
  'centos-7-x86_64',
11
+ 'el-10-x86_64',
11
12
  'sles-12-x86_64',
12
13
  'archlinux-2017.12.27-x86_64',
13
14
  'amazon-2023-x86_64',
@@ -913,7 +914,7 @@ module Beaker
913
914
  'platform' => platform,
914
915
  'image' => 'foobar',
915
916
  }))
916
- expect(dockerfile).to match(/ENV container docker/)
917
+ expect(dockerfile).to include('ENV container docker')
917
918
  end
918
919
  end
919
920
 
@@ -960,7 +961,7 @@ module Beaker
960
961
  'docker_image_entrypoint' => '/bin/bash',
961
962
  }))
962
963
 
963
- expect(dockerfile).to match(%r{ENTRYPOINT /bin/bash})
964
+ expect(dockerfile).to include('ENTRYPOINT /bin/bash')
964
965
  end
965
966
  end
966
967
 
@@ -971,7 +972,7 @@ module Beaker
971
972
  'image' => 'foobar',
972
973
  }))
973
974
 
974
- expect(dockerfile).to match(/zypper -n in openssh/)
975
+ expect(dockerfile).to include('zypper -n in openssh')
975
976
  end
976
977
 
977
978
  (22..39).to_a.each do |fedora_release|
@@ -982,7 +983,7 @@ module Beaker
982
983
  'image' => 'foobar',
983
984
  }))
984
985
 
985
- expect(dockerfile).to match(/dnf install -y sudo/)
986
+ expect(dockerfile).to include('dnf install -y sudo')
986
987
  end
987
988
  end
988
989
 
@@ -993,9 +994,9 @@ module Beaker
993
994
  'image' => 'foobar',
994
995
  }))
995
996
 
996
- expect(dockerfile).to match(/pacman --sync --refresh --noconfirm archlinux-keyring/)
997
- expect(dockerfile).to match(/pacman --sync --refresh --noconfirm --sysupgrade/)
998
- expect(dockerfile).to match(/pacman --sync --noconfirm curl net-tools openssh/)
997
+ expect(dockerfile).to include('pacman --sync --refresh --noconfirm archlinux-keyring')
998
+ expect(dockerfile).to include('pacman --sync --refresh --noconfirm --sysupgrade')
999
+ expect(dockerfile).to include('pacman --sync --noconfirm curl net-tools openssh')
999
1000
  end
1000
1001
  end
1001
1002
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
@@ -80,14 +80,14 @@ dependencies:
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: 5.1.0
83
+ version: 5.3.0
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: 5.1.0
90
+ version: 5.3.0
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: beaker
93
93
  requirement: !ruby/object:Gem::Requirement
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  - !ruby/object:Gem::Version
219
219
  version: '0'
220
220
  requirements: []
221
- rubygems_version: 4.0.16
221
+ rubygems_version: 4.0.20
222
222
  specification_version: 4
223
223
  summary: Docker hypervisor for Beaker acceptance testing framework
224
224
  test_files: []