Skip to content

Commit e188d80

Browse files
committed
Add foreman proxy CI action
1 parent 4501849 commit e188d80

File tree

5 files changed

+72
-41
lines changed

5 files changed

+72
-41
lines changed

.github/workflows/ci.yml

+11-25
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,16 @@
11
name: CI
22

3-
on:
4-
- pull_request
5-
- push
3+
on: pull_request
4+
5+
concurrency:
6+
group: ${{ github.ref_name }}-${{ github.workflow }}
7+
cancel-in-progress: true
68

79
jobs:
810
test:
9-
runs-on: ubuntu-latest
10-
strategy:
11-
fail-fast: false
12-
matrix:
13-
ruby:
14-
- "2.5"
15-
- "2.6"
16-
- "2.7"
17-
name: Ruby ${{ matrix.ruby }}
18-
steps:
19-
- uses: actions/checkout@v3
20-
- name: Install development headers
21-
run: sudo apt install libkrb5-dev libldap-dev libsasl2-dev -y
22-
- name: Install Ruby ${{ matrix.ruby }}
23-
uses: ruby/setup-ruby@v1
24-
with:
25-
ruby-version: ${{ matrix.ruby }}
26-
bundler-cache: true
27-
- name: Run tests
28-
run: bundle exec rake test
29-
- name: Verify gem builds
30-
run: gem build *.gemspec
11+
name: Tests
12+
uses: theforeman/actions/.github/workflows/smart_proxy_plugin.yml@v0
13+
with:
14+
extra_packages: "libkrb5-dev libldap-dev libsasl2-dev"
15+
16+

smart_proxy_realm_ad_plugin.gemspec

+48-7
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,61 @@ Gem::Specification.new do |s|
55
s.name = 'smart_proxy_realm_ad_plugin'
66
s.version = Proxy::AdRealm::VERSION
77
s.date = Date.today.to_s
8-
s.license = 'GPL-3.0'
8+
s.license = 'GPL-3.0-only'
99
s.authors = ['Mårten Cassel']
1010
s.email = ['marten.cassel@gmail.com']
1111
s.homepage = 'https://github.com/theforeman/smart_proxy_realm_ad_plugin'
12+
s.required_ruby_version = '>= 2.7'
1213

1314
s.summary = "A realm ad provider plugin for Foreman's smart proxy"
14-
s.description = "A realm ad provider plugin for Foreman's smart proxy"
15+
s.description = "This plugin provides a realm ad provider for Foreman's smart proxy, allowing integration with Active Directory realms."
16+
1517

1618
s.files = Dir['{config,lib,bundler.d}/**/*'] + ['README.md', 'LICENSE']
1719
s.test_files = Dir['test/**/*']
1820

19-
s.add_development_dependency('rake')
20-
s.add_development_dependency('mocha')
21-
s.add_development_dependency('test-unit')
22-
s.add_dependency('rkerberos')
23-
s.add_dependency('radcli')
21+
s.add_development_dependency('rake', '~> 13.2.1')
22+
s.add_development_dependency('mocha', '~> 2.7.1')
23+
s.add_development_dependency('minitest', '~> 5.25.4')
24+
s.add_development_dependency('test-unit', '~> 3.6.7')
25+
s.add_dependency('rkerberos', '~> 0.1.5')
26+
s.add_dependency('radcli', '~> 1.1.0')
2427
end
28+
29+
# Run if compgen -G "*.gemspec" > /dev/null ; then
30+
# if compgen -G "*.gemspec" > /dev/null ; then
31+
# gem build --verbose --strict *.gemspec
32+
# fi
33+
# shell: /usr/bin/bash -e {0}
34+
# env:
35+
# SMART_PROXY_BRANCH: develop
36+
# WARNING: description and summary are identical
37+
# WARNING: open-ended dependency on rake (>= 0, development) is not recommended
38+
# use a bounded requirement, such as '~> x.y'
39+
# WARNING: open-ended dependency on mocha (>= 0, development) is not recommended
40+
# use a bounded requirement, such as '~> x.y'
41+
# WARNING: open-ended dependency on test-unit (>= 0, development) is not recommended
42+
# use a bounded requirement, such as '~> x.y'
43+
# WARNING: open-ended dependency on rkerberos (>= 0) is not recommended
44+
# use a bounded requirement, such as '~> x.y'
45+
# WARNING: open-ended dependency on radcli (>= 0) is not recommended
46+
# use a bounded requirement, such as '~> x.y'
47+
# WARNING: See https://guides.rubygems.org/specification-reference/ for help
48+
# ERROR: While executing gem ... (Gem::InvalidSpecificationException)
49+
# specification has warnings
50+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/specification_policy.rb:499:in `error'
51+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/specification_policy.rb:111:in `validate_optional'
52+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/specification_policy.rb:48:in `validate'
53+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/specification.rb:2639:in `validate'
54+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/package.rb:299:in `build'
55+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/package.rb:137:in `build'
56+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/commands/build_command.rb:103:in `build_package'
57+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/commands/build_command.rb:93:in `build_gem'
58+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/commands/build_command.rb:73:in `execute'
59+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/command.rb:328:in `invoke_with_build_args'
60+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/command_manager.rb:253:in `invoke_command'
61+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
62+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
63+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/lib/ruby/3.2.0/rubygems/gem_runner.rb:52:in `run'
64+
# /opt/hostedtoolcache/Ruby/3.2.6/x64/bin/gem:10:in `<main>'
65+

test/ad_provider_test.rb

+7-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
require 'smart_proxy_realm_ad/provider'
44
require 'radcli'
55

6-
class RealmAdTest < Test::Unit::TestCase
6+
class RealmAdTest < Minitest::Test
77
def setup
88
@realm = 'test_realm'
99
@provider = Proxy::AdRealm::Provider.new(
@@ -72,7 +72,7 @@ def test_rebuild_host_returns_password
7272
end
7373

7474
def test_generate_password_returns_random_passwords
75-
assert_not_equal @provider.generate_password, @provider.generate_password
75+
refute_equal @provider.generate_password, @provider.generate_password
7676
end
7777

7878
def test_generate_password_returns_20_char_long_password
@@ -81,22 +81,22 @@ def test_generate_password_returns_20_char_long_password
8181

8282
def test_apply_computername_prefix_should_return_false_when_prefix_is_nil
8383
provider = Proxy::AdRealm::Provider.new(computername_prefix: nil, realm: 'example.com')
84-
assert_false provider.apply_computername_prefix?('host.example.com')
84+
refute provider.apply_computername_prefix?('host.example.com')
8585
end
8686

8787
def test_apply_computername_prefix_should_return_false_when_prefix_is_empty
8888
provider = Proxy::AdRealm::Provider.new(computername_prefix: '', realm: 'example.com')
89-
assert_false provider.apply_computername_prefix?('host.example.com')
89+
refute provider.apply_computername_prefix?('host.example.com')
9090
end
9191

9292
def test_apply_computername_prefix_should_return_false_when_hostname_contains_prefix
9393
provider = Proxy::AdRealm::Provider.new(computername_prefix: 'PREFIX-', realm: 'example.com')
94-
assert_false provider.apply_computername_prefix?('prefix-host.example.com')
94+
refute provider.apply_computername_prefix?('prefix-host.example.com')
9595
end
9696

9797
def test_apply_computername_prefix_should_return_true_when_computername_hash_is_used
9898
provider = Proxy::AdRealm::Provider.new(computername_prefix: 'PREFIX-', computername_hash: true, realm: 'example.com')
99-
assert_true provider.apply_computername_prefix?('host.example.com')
99+
assert provider.apply_computername_prefix?('host.example.com')
100100
end
101101

102102
def test_hostfqdn_to_computername_uses_prefix
@@ -119,7 +119,7 @@ def test_unrecognized_realm_raises_exception
119119
end
120120

121121
def test_find
122-
assert_true @provider.find('a_host_fqdn')
122+
assert @provider.find('a_host_fqdn')
123123
end
124124

125125
def test_delete

test/internal_api_test.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def container_instance; end
1515

1616
require 'realm/realm_api'
1717

18-
class InternalApiTest < Test::Unit::TestCase
18+
class InternalApiTest < Minitest::Test
1919
include Rack::Test::Methods
2020

2121
def app

test/test_helper.rb

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
require 'test/unit'
2-
require 'mocha/setup'
2+
require 'minitest/autorun'
3+
require 'mocha/minitest'
4+
require 'minitest/reporters'
5+
6+
Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
37

48
require 'smart_proxy_for_testing'
59

0 commit comments

Comments
 (0)