octopus-serverspec-extensions 0.18.1 → 0.19.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 +4 -4
- data/.gitignore +14 -14
- data/.rspec +2 -2
- data/.travis.yml +5 -5
- data/Gemfile +4 -4
- data/LICENSE.txt +12 -12
- data/README.md +39 -39
- data/Rakefile +6 -6
- data/bin/console +14 -14
- data/bin/setup +8 -8
- data/docs/authentication.md +45 -45
- data/docs/octopus_deploy_account.md +37 -37
- data/docs/octopus_deploy_doc_template.md +16 -16
- data/docs/octopus_deploy_environment.md +32 -32
- data/docs/octopus_deploy_project_group.md +30 -30
- data/docs/octopus_deploy_smtp_config.md +39 -39
- data/docs/octopus_deploy_space.md +32 -32
- data/docs/octopus_deploy_team.md +25 -25
- data/docs/octopus_deploy_tentacle.md +40 -40
- data/docs/octopus_deploy_upgrade_config.md +33 -33
- data/docs/octopus_deploy_user.md +33 -33
- data/docs/octopus_deploy_worker.md +38 -38
- data/docs/octopus_deploy_worker_pool.md +25 -25
- data/lib/octopus_serverspec_extensions.rb +85 -85
- data/lib/octopus_serverspec_extensions/matcher/allow_dynamic_infrastructure.rb +12 -12
- data/lib/octopus_serverspec_extensions/matcher/have_linux_line_endings.rb +13 -13
- data/lib/octopus_serverspec_extensions/matcher/have_version.rb +36 -36
- data/lib/octopus_serverspec_extensions/matcher/have_windows_line_endings.rb +13 -13
- data/lib/octopus_serverspec_extensions/matcher/run_under_account.rb +17 -17
- data/lib/octopus_serverspec_extensions/matcher/use_guided_failure.rb +12 -12
- data/lib/octopus_serverspec_extensions/type/chocolatey_package.rb +33 -33
- data/lib/octopus_serverspec_extensions/type/java_property_file.rb +28 -28
- data/lib/octopus_serverspec_extensions/type/npm_package.rb +36 -36
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb +176 -176
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb +117 -117
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_project_group.rb +127 -127
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_smtp_config.rb +109 -109
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_space.rb +92 -92
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_team.rb +81 -81
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_tentacle.rb +208 -208
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_upgrade_config.rb +112 -112
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_user.rb +110 -110
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_worker.rb +173 -173
- data/lib/octopus_serverspec_extensions/type/octopus_deploy_worker_pool.rb +88 -88
- data/lib/octopus_serverspec_extensions/type/windows_dsc.rb +37 -37
- data/lib/octopus_serverspec_extensions/type/windows_firewall.rb +32 -32
- data/lib/octopus_serverspec_extensions/type/windows_scheduled_task.rb +33 -33
- data/lib/octopus_serverspec_extensions/version.rb +3 -3
- data/octopus-serverspec-extensions.gemspec +34 -34
- metadata +15 -16
@@ -1,88 +1,88 @@
|
|
1
|
-
require 'serverspec'
|
2
|
-
require 'serverspec/type/base'
|
3
|
-
require 'net/http'
|
4
|
-
require 'json'
|
5
|
-
|
6
|
-
module Serverspec::Type
|
7
|
-
class OctopusDeployWorkerPool < Base
|
8
|
-
@worker_pool = nil
|
9
|
-
@worker_pool_name = nil
|
10
|
-
@serverUrl = nil
|
11
|
-
@apiKey = nil
|
12
|
-
|
13
|
-
def initialize(*url_and_api_key, worker_pool_name)
|
14
|
-
serverUrl = get_octopus_url(url_and_api_key[0])
|
15
|
-
apiKey = get_octopus_api_key(url_and_api_key[1])
|
16
|
-
|
17
|
-
@worker_pool_name = worker_pool_name
|
18
|
-
|
19
|
-
@name = "Octopus Deploy Worker Pool #{worker_pool_name}"
|
20
|
-
@runner = Specinfra::Runner
|
21
|
-
@serverUrl = serverUrl
|
22
|
-
@apiKey = apiKey
|
23
|
-
|
24
|
-
if (serverUrl.nil?)
|
25
|
-
raise "'serverUrl' was not provided. Unable to connect to Octopus server to validate configuration."
|
26
|
-
end
|
27
|
-
if (apiKey.nil?)
|
28
|
-
raise "'apiKey' was not provided. Unable to connect to Octopus server to validate configuration."
|
29
|
-
end
|
30
|
-
if (worker_pool_name.nil?)
|
31
|
-
raise "'worker_pool_name' was not provided. Unable to connect to Octopus server to validate configuration."
|
32
|
-
end
|
33
|
-
|
34
|
-
@worker_pool = get_worker_pool_via_api(serverUrl, apiKey, worker_pool_name)
|
35
|
-
end
|
36
|
-
|
37
|
-
def in_space(space_name)
|
38
|
-
# allows us to tag .in_space() onto the end of the resource. as in
|
39
|
-
# describe octopus_worker_pool("account name").in_space("MyNewSpace") do
|
40
|
-
@spaceId = get_space_id?(space_name)
|
41
|
-
if @worker_pool_name.nil?
|
42
|
-
raise "'worker_pool_name' was not provided. Unable to connect to Octopus server to validate configuration."
|
43
|
-
end
|
44
|
-
self
|
45
|
-
end
|
46
|
-
|
47
|
-
def exists?
|
48
|
-
(!@worker_pool.nil?) && (@worker_pool != [])
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def octopus_deploy_worker_pool(*url_and_api_key, worker_pool_name)
|
53
|
-
serverUrl, apiKey = get_octopus_url(url_and_api_key)
|
54
|
-
|
55
|
-
OctopusDeployWorkerPool.new(serverUrl, apiKey, worker_pool_name)
|
56
|
-
end
|
57
|
-
|
58
|
-
def octopus_worker_pool(*url_and_api_key, worker_pool_name)
|
59
|
-
serverUrl, apiKey = get_octopus_url(url_and_api_key)
|
60
|
-
|
61
|
-
OctopusDeployWorkerPool.new(serverUrl, apiKey, worker_pool_name)
|
62
|
-
end
|
63
|
-
|
64
|
-
private
|
65
|
-
|
66
|
-
def get_worker_pool_via_api(serverUrl, apiKey, worker_pool_name)
|
67
|
-
worker_pool = nil
|
68
|
-
|
69
|
-
if @serverSupportsSpaces
|
70
|
-
# set the spaceId correctly
|
71
|
-
@spaceFragment = "#{@spaceId}/"
|
72
|
-
end
|
73
|
-
|
74
|
-
url = "#{serverUrl}/api/#{@spaceFragment}workerpools/all?api-key=#{apiKey}"
|
75
|
-
|
76
|
-
begin
|
77
|
-
resp = Net::HTTP.get_response(URI.parse(url))
|
78
|
-
body = JSON.parse(resp.body)
|
79
|
-
worker_pool = body.select {|i| i['Name'] == worker_pool_name } unless body.nil?
|
80
|
-
rescue => e
|
81
|
-
raise "Unable to connect to #{url}: #{e}"
|
82
|
-
end
|
83
|
-
|
84
|
-
worker_pool
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
include Serverspec::Type
|
1
|
+
require 'serverspec'
|
2
|
+
require 'serverspec/type/base'
|
3
|
+
require 'net/http'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Serverspec::Type
|
7
|
+
class OctopusDeployWorkerPool < Base
|
8
|
+
@worker_pool = nil
|
9
|
+
@worker_pool_name = nil
|
10
|
+
@serverUrl = nil
|
11
|
+
@apiKey = nil
|
12
|
+
|
13
|
+
def initialize(*url_and_api_key, worker_pool_name)
|
14
|
+
serverUrl = get_octopus_url(url_and_api_key[0])
|
15
|
+
apiKey = get_octopus_api_key(url_and_api_key[1])
|
16
|
+
|
17
|
+
@worker_pool_name = worker_pool_name
|
18
|
+
|
19
|
+
@name = "Octopus Deploy Worker Pool #{worker_pool_name}"
|
20
|
+
@runner = Specinfra::Runner
|
21
|
+
@serverUrl = serverUrl
|
22
|
+
@apiKey = apiKey
|
23
|
+
|
24
|
+
if (serverUrl.nil?)
|
25
|
+
raise "'serverUrl' was not provided. Unable to connect to Octopus server to validate configuration."
|
26
|
+
end
|
27
|
+
if (apiKey.nil?)
|
28
|
+
raise "'apiKey' was not provided. Unable to connect to Octopus server to validate configuration."
|
29
|
+
end
|
30
|
+
if (worker_pool_name.nil?)
|
31
|
+
raise "'worker_pool_name' was not provided. Unable to connect to Octopus server to validate configuration."
|
32
|
+
end
|
33
|
+
|
34
|
+
@worker_pool = get_worker_pool_via_api(serverUrl, apiKey, worker_pool_name)
|
35
|
+
end
|
36
|
+
|
37
|
+
def in_space(space_name)
|
38
|
+
# allows us to tag .in_space() onto the end of the resource. as in
|
39
|
+
# describe octopus_worker_pool("account name").in_space("MyNewSpace") do
|
40
|
+
@spaceId = get_space_id?(space_name)
|
41
|
+
if @worker_pool_name.nil?
|
42
|
+
raise "'worker_pool_name' was not provided. Unable to connect to Octopus server to validate configuration."
|
43
|
+
end
|
44
|
+
self
|
45
|
+
end
|
46
|
+
|
47
|
+
def exists?
|
48
|
+
(!@worker_pool.nil?) && (@worker_pool != [])
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def octopus_deploy_worker_pool(*url_and_api_key, worker_pool_name)
|
53
|
+
serverUrl, apiKey = get_octopus_url(url_and_api_key)
|
54
|
+
|
55
|
+
OctopusDeployWorkerPool.new(serverUrl, apiKey, worker_pool_name)
|
56
|
+
end
|
57
|
+
|
58
|
+
def octopus_worker_pool(*url_and_api_key, worker_pool_name)
|
59
|
+
serverUrl, apiKey = get_octopus_url(url_and_api_key)
|
60
|
+
|
61
|
+
OctopusDeployWorkerPool.new(serverUrl, apiKey, worker_pool_name)
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def get_worker_pool_via_api(serverUrl, apiKey, worker_pool_name)
|
67
|
+
worker_pool = nil
|
68
|
+
|
69
|
+
if @serverSupportsSpaces
|
70
|
+
# set the spaceId correctly
|
71
|
+
@spaceFragment = "#{@spaceId}/"
|
72
|
+
end
|
73
|
+
|
74
|
+
url = "#{serverUrl}/api/#{@spaceFragment}workerpools/all?api-key=#{apiKey}"
|
75
|
+
|
76
|
+
begin
|
77
|
+
resp = Net::HTTP.get_response(URI.parse(url))
|
78
|
+
body = JSON.parse(resp.body)
|
79
|
+
worker_pool = body.select {|i| i['Name'] == worker_pool_name } unless body.nil?
|
80
|
+
rescue => e
|
81
|
+
raise "Unable to connect to #{url}: #{e}"
|
82
|
+
end
|
83
|
+
|
84
|
+
worker_pool
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
include Serverspec::Type
|
@@ -1,37 +1,37 @@
|
|
1
|
-
require 'serverspec'
|
2
|
-
require 'serverspec/type/base'
|
3
|
-
|
4
|
-
module Serverspec::Type
|
5
|
-
class WindowsDSC < Base
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@runner = Specinfra::Runner
|
9
|
-
end
|
10
|
-
|
11
|
-
def able_to_get_dsc_configuration?
|
12
|
-
command_result = @runner.run_command('$ProgressPreference = "SilentlyContinue"; $state = ""; do { $state = (Get-DscLocalConfigurationManager).LCMState; write-host "LCM state is $state"; Start-Sleep -Seconds 2; } while ($state -ne "Idle"); try { Get-DSCConfiguration -ErrorAction Stop; write-output "Get-DSCConfiguration succeeded"; $true } catch { write-output "Get-DSCConfiguration failed"; write-output $_; $false }')
|
13
|
-
command_result.stdout.gsub(/\n/, '').match /Get-DSCConfiguration succeeded/
|
14
|
-
end
|
15
|
-
|
16
|
-
def has_test_dsc_configuration_return_true?
|
17
|
-
command_result = @runner.run_command('$ProgressPreference = "SilentlyContinue"; $state = ""; do { $state = (Get-DscLocalConfigurationManager).LCMState; write-host "LCM state is $state"; Start-Sleep -Seconds 2; } while ($state -ne "Idle"); try { if (-not (Test-DSCConfiguration -ErrorAction Stop)) { write-output "Test-DSCConfiguration returned false"; exit 1 } write-output "Test-DSCConfiguration succeeded"; exit 0 } catch { write-output "Test-DSCConfiguration failed"; write-output $_; exit 2 }')
|
18
|
-
command_result.stdout.gsub(/\n/, '').match /Test-DSCConfiguration succeeded/
|
19
|
-
end
|
20
|
-
|
21
|
-
def has_dsc_configuration_status_of_success?
|
22
|
-
command_result = @runner.run_command('$ProgressPreference = "SilentlyContinue"; try { $statuses = @(Get-DSCConfigurationStatus -ErrorAction Stop -All); $status = $statuses[0].Status; write-host "Get-DSCConfigurationStatus is \'$status\'"; if ($status -eq "Success") { exit 0 } else { exit 1 } } catch { write-output "Get-DSCConfigurationStatus failed"; write-output $_; exit 2; }')
|
23
|
-
command_result.stdout.gsub(/\n/, '').match /Get-DSCConfigurationStatus is 'Success'/
|
24
|
-
end
|
25
|
-
|
26
|
-
def to_s
|
27
|
-
"Windows DSC"
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
def windows_dsc
|
33
|
-
WindowsDSC.new
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
include Serverspec::Type
|
1
|
+
require 'serverspec'
|
2
|
+
require 'serverspec/type/base'
|
3
|
+
|
4
|
+
module Serverspec::Type
|
5
|
+
class WindowsDSC < Base
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@runner = Specinfra::Runner
|
9
|
+
end
|
10
|
+
|
11
|
+
def able_to_get_dsc_configuration?
|
12
|
+
command_result = @runner.run_command('$ProgressPreference = "SilentlyContinue"; $state = ""; do { $state = (Get-DscLocalConfigurationManager).LCMState; write-host "LCM state is $state"; Start-Sleep -Seconds 2; } while ($state -ne "Idle"); try { Get-DSCConfiguration -ErrorAction Stop; write-output "Get-DSCConfiguration succeeded"; $true } catch { write-output "Get-DSCConfiguration failed"; write-output $_; $false }')
|
13
|
+
command_result.stdout.gsub(/\n/, '').match /Get-DSCConfiguration succeeded/
|
14
|
+
end
|
15
|
+
|
16
|
+
def has_test_dsc_configuration_return_true?
|
17
|
+
command_result = @runner.run_command('$ProgressPreference = "SilentlyContinue"; $state = ""; do { $state = (Get-DscLocalConfigurationManager).LCMState; write-host "LCM state is $state"; Start-Sleep -Seconds 2; } while ($state -ne "Idle"); try { if (-not (Test-DSCConfiguration -ErrorAction Stop)) { write-output "Test-DSCConfiguration returned false"; exit 1 } write-output "Test-DSCConfiguration succeeded"; exit 0 } catch { write-output "Test-DSCConfiguration failed"; write-output $_; exit 2 }')
|
18
|
+
command_result.stdout.gsub(/\n/, '').match /Test-DSCConfiguration succeeded/
|
19
|
+
end
|
20
|
+
|
21
|
+
def has_dsc_configuration_status_of_success?
|
22
|
+
command_result = @runner.run_command('$ProgressPreference = "SilentlyContinue"; try { $statuses = @(Get-DSCConfigurationStatus -ErrorAction Stop -All); $status = $statuses[0].Status; write-host "Get-DSCConfigurationStatus is \'$status\'"; if ($status -eq "Success") { exit 0 } else { exit 1 } } catch { write-output "Get-DSCConfigurationStatus failed"; write-output $_; exit 2; }')
|
23
|
+
command_result.stdout.gsub(/\n/, '').match /Get-DSCConfigurationStatus is 'Success'/
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
"Windows DSC"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def windows_dsc
|
33
|
+
WindowsDSC.new
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
include Serverspec::Type
|
@@ -1,32 +1,32 @@
|
|
1
|
-
require 'serverspec'
|
2
|
-
require 'serverspec/type/base'
|
3
|
-
|
4
|
-
module Serverspec::Type
|
5
|
-
class WindowsFirewall < Base
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@runner = Specinfra::Runner
|
9
|
-
end
|
10
|
-
|
11
|
-
def has_open_port?(port)
|
12
|
-
command_result = @runner.run_command("((New-Object -comObject HNetCfg.FwPolicy2).rules | where-object { $_.LocalPorts -eq #{port} -and $_.Action -eq 1}).Enabled")
|
13
|
-
command_result.stdout.gsub(/\n/, '') == "True"
|
14
|
-
end
|
15
|
-
|
16
|
-
def enabled?
|
17
|
-
command_result = @runner.run_command("(get-service MpsSvc).Status")
|
18
|
-
command_result.stdout.gsub(/\n/, '') == "Running"
|
19
|
-
end
|
20
|
-
|
21
|
-
def to_s
|
22
|
-
"Windows Firewall"
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
def windows_firewall
|
28
|
-
WindowsFirewall.new
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
include Serverspec::Type
|
1
|
+
require 'serverspec'
|
2
|
+
require 'serverspec/type/base'
|
3
|
+
|
4
|
+
module Serverspec::Type
|
5
|
+
class WindowsFirewall < Base
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@runner = Specinfra::Runner
|
9
|
+
end
|
10
|
+
|
11
|
+
def has_open_port?(port)
|
12
|
+
command_result = @runner.run_command("((New-Object -comObject HNetCfg.FwPolicy2).rules | where-object { $_.LocalPorts -eq #{port} -and $_.Action -eq 1}).Enabled")
|
13
|
+
command_result.stdout.gsub(/\n/, '') == "True"
|
14
|
+
end
|
15
|
+
|
16
|
+
def enabled?
|
17
|
+
command_result = @runner.run_command("(get-service MpsSvc).Status")
|
18
|
+
command_result.stdout.gsub(/\n/, '') == "Running"
|
19
|
+
end
|
20
|
+
|
21
|
+
def to_s
|
22
|
+
"Windows Firewall"
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def windows_firewall
|
28
|
+
WindowsFirewall.new
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
include Serverspec::Type
|
@@ -1,33 +1,33 @@
|
|
1
|
-
require 'serverspec'
|
2
|
-
require 'serverspec/type/base'
|
3
|
-
require 'csv'
|
4
|
-
|
5
|
-
module Serverspec::Type
|
6
|
-
class WindowsScheduledTask < Base
|
7
|
-
attr_reader :state, :user_id, :run_level, :schedule_type, :repeat_every
|
8
|
-
@exists = false
|
9
|
-
|
10
|
-
def initialize(name)
|
11
|
-
@name = name
|
12
|
-
@runner = Specinfra::Runner
|
13
|
-
|
14
|
-
stdout = `schtasks /query /tn \"#{name}\" /fo csv /v`
|
15
|
-
return unless $?.success?
|
16
|
-
csv = CSV.parse(stdout)
|
17
|
-
@exists = true
|
18
|
-
headers = csv[0]
|
19
|
-
data = csv[1]
|
20
|
-
@state = data[headers.index{|x|x=="Status"}]
|
21
|
-
@user_id = data[headers.index{|x|x=="Run As User"}]
|
22
|
-
@run_level = data[headers.index{|x|x=="Logon Mode"}]
|
23
|
-
@schedule_type = data[headers.index{|x|x=="Schedule Type"}].strip
|
24
|
-
@repeat_every = data[headers.index{|x|x=="Repeat: Every"}]
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def windows_scheduled_task(name)
|
29
|
-
WindowsScheduledTask.new(name)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
include Serverspec::Type
|
1
|
+
require 'serverspec'
|
2
|
+
require 'serverspec/type/base'
|
3
|
+
require 'csv'
|
4
|
+
|
5
|
+
module Serverspec::Type
|
6
|
+
class WindowsScheduledTask < Base
|
7
|
+
attr_reader :state, :user_id, :run_level, :schedule_type, :repeat_every
|
8
|
+
@exists = false
|
9
|
+
|
10
|
+
def initialize(name)
|
11
|
+
@name = name
|
12
|
+
@runner = Specinfra::Runner
|
13
|
+
|
14
|
+
stdout = `schtasks /query /tn \"#{name}\" /fo csv /v`
|
15
|
+
return unless $?.success?
|
16
|
+
csv = CSV.parse(stdout)
|
17
|
+
@exists = true
|
18
|
+
headers = csv[0]
|
19
|
+
data = csv[1]
|
20
|
+
@state = data[headers.index{|x|x=="Status"}]
|
21
|
+
@user_id = data[headers.index{|x|x=="Run As User"}]
|
22
|
+
@run_level = data[headers.index{|x|x=="Logon Mode"}]
|
23
|
+
@schedule_type = data[headers.index{|x|x=="Schedule Type"}].strip
|
24
|
+
@repeat_every = data[headers.index{|x|x=="Repeat: Every"}]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def windows_scheduled_task(name)
|
29
|
+
WindowsScheduledTask.new(name)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
include Serverspec::Type
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module OctopusServerSpecExtensions
|
2
|
-
VERSION = "0.
|
3
|
-
end
|
1
|
+
module OctopusServerSpecExtensions
|
2
|
+
VERSION = "0.19.0"
|
3
|
+
end
|
@@ -1,34 +1,34 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'octopus_serverspec_extensions/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "octopus-serverspec-extensions"
|
8
|
-
spec.version = OctopusServerSpecExtensions::VERSION
|
9
|
-
spec.authors = ["Matt Richardson"]
|
10
|
-
spec.email = "devops@octopus.com"
|
11
|
-
spec.summary = %q{ServerSpec extensions for Octopus Deploy}
|
12
|
-
spec.description = %q{ServerSpec extensions for Octopus Deploy, adds support for Octopus Deploy objects and including some common windows objects.}
|
13
|
-
spec.homepage = "https://github.com/octopus-deploy/octopus-serverspec-extensions"
|
14
|
-
spec.license = "Apache-2.0"
|
15
|
-
|
16
|
-
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
-
f.match(%r{^(test|spec|features)/})
|
18
|
-
end
|
19
|
-
spec.bindir = "exe"
|
20
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
-
spec.require_paths = ["lib"]
|
22
|
-
|
23
|
-
spec.add_dependency "serverspec", "~> 2"
|
24
|
-
spec.add_dependency "specinfra", "~> 2"
|
25
|
-
spec.add_dependency 'rspec', '~> 3.0'
|
26
|
-
spec.add_dependency 'json', '~> 2.
|
27
|
-
|
28
|
-
spec.add_development_dependency "bundler", "~>
|
29
|
-
spec.add_development_dependency "rake", ">=
|
30
|
-
spec.add_development_dependency "rspec", "~> 3
|
31
|
-
spec.add_development_dependency "rspec-teamcity", "~>
|
32
|
-
spec.add_development_dependency "webmock", "~> 3
|
33
|
-
|
34
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'octopus_serverspec_extensions/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "octopus-serverspec-extensions"
|
8
|
+
spec.version = OctopusServerSpecExtensions::VERSION
|
9
|
+
spec.authors = ["Matt Richardson"]
|
10
|
+
spec.email = "devops@octopus.com"
|
11
|
+
spec.summary = %q{ServerSpec extensions for Octopus Deploy}
|
12
|
+
spec.description = %q{ServerSpec extensions for Octopus Deploy, adds support for Octopus Deploy objects and including some common windows objects.}
|
13
|
+
spec.homepage = "https://github.com/octopus-deploy/octopus-serverspec-extensions"
|
14
|
+
spec.license = "Apache-2.0"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_dependency "serverspec", "~> 2"
|
24
|
+
spec.add_dependency "specinfra", "~> 2"
|
25
|
+
spec.add_dependency 'rspec', '~> 3.0'
|
26
|
+
spec.add_dependency 'json', '~> 2.3.0'
|
27
|
+
|
28
|
+
spec.add_development_dependency "bundler", "~> 2"
|
29
|
+
spec.add_development_dependency "rake", ">= 13.0"
|
30
|
+
spec.add_development_dependency "rspec", "~> 3"
|
31
|
+
spec.add_development_dependency "rspec-teamcity", "~> 1"
|
32
|
+
spec.add_development_dependency "webmock", "~> 3"
|
33
|
+
|
34
|
+
end
|