http_stub_docker 0.0.6 → 0.0.7
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/lib/http_stub_docker/rake/arguments.rb +28 -0
- data/lib/http_stub_docker/rake/container_tasks.rb +5 -5
- data/lib/http_stub_docker/rake/pipeline_tasks.rb +11 -11
- data/lib/http_stub_docker/rake/resource_tasks.rb +27 -3
- data/lib/http_stub_docker/rake/server_daemon_tasks.rb +4 -4
- data/lib/http_stub_docker/rake/task_generator.rb +4 -7
- data/lib/http_stub_docker.rb +1 -0
- data/resource/.dockerignore +1 -1
- data/resource/{Dockerfile → Dockerfile.erb} +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b1404249f82152818d7773190064df58bd63409
|
4
|
+
data.tar.gz: 6725e6f4558a4430829dc56967c1eb968cf1600b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54163a6a149cd3f500a8e68f0d0a3ee4efa1b396acc46cc02b4e69bb341971e8c4b12c4f80e48b8cad30e116cf7641a95cf36f98557130b8c1bc8def68c89ee2
|
7
|
+
data.tar.gz: 440258503904442758090e735702688de3f2c5c5651c2cc691863ced71bf16e54dddb6df88184cfc771c59c80ae17c9f4c14e5e363fa599642ebb1a1b27ad6bc
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module HttpStubDocker
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
class Arguments
|
5
|
+
|
6
|
+
DEFAULT_PORT = 5000
|
7
|
+
|
8
|
+
private_constant :DEFAULT_PORT
|
9
|
+
|
10
|
+
attr_reader :configurer, :stub_name, :stub_dir, :port, :external_base_uri, :version, :task_prefix
|
11
|
+
|
12
|
+
def initialize(args)
|
13
|
+
@port = DEFAULT_PORT
|
14
|
+
args.each { |name, value| self.instance_variable_set("@#{name}", value) }
|
15
|
+
@external_base_uri ||= "http://localhost:#{@port}"
|
16
|
+
@task_prefix = current_rake_namespace
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def current_rake_namespace
|
22
|
+
::Rake.application.current_scope.empty? ? "" : "#{::Rake.application.current_scope.to_a.reverse.join(":")}:"
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -15,7 +15,7 @@ module HttpStubDocker
|
|
15
15
|
def define_build_task(args)
|
16
16
|
desc "Builds the image"
|
17
17
|
task(:build) do
|
18
|
-
system "docker build -t #{args
|
18
|
+
system "docker build -t #{args.stub_name} ."
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -23,9 +23,9 @@ module HttpStubDocker
|
|
23
23
|
desc "Starts a container"
|
24
24
|
task(:start) do
|
25
25
|
system "docker run -d " \
|
26
|
-
"-p #{args
|
27
|
-
"-e STUB_EXTERNAL_BASE_URI=#{args
|
28
|
-
"#{args
|
26
|
+
"-p #{args.port}:#{args.port} " \
|
27
|
+
"-e STUB_EXTERNAL_BASE_URI=#{args.external_base_uri} " \
|
28
|
+
"#{args.stub_name}"
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -44,7 +44,7 @@ module HttpStubDocker
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def container_ids(args)
|
47
|
-
`docker ps -a --filter ancestor=#{args
|
47
|
+
`docker ps -a --filter ancestor=#{args.stub_name} --format "{{.ID}}"`.split
|
48
48
|
end
|
49
49
|
|
50
50
|
end
|
@@ -9,7 +9,7 @@ module HttpStubDocker
|
|
9
9
|
|
10
10
|
def initialize(args)
|
11
11
|
define_test_task(args)
|
12
|
-
define_commit_task
|
12
|
+
define_commit_task(args)
|
13
13
|
define_publish_task(args)
|
14
14
|
end
|
15
15
|
|
@@ -19,29 +19,29 @@ module HttpStubDocker
|
|
19
19
|
desc "Verifies container is running"
|
20
20
|
task(:test) do
|
21
21
|
Bundler.require(:test)
|
22
|
-
Wait.until!(description: "#{args
|
23
|
-
response = Net::HTTP.get_response(URI("#{args
|
24
|
-
raise "#{args
|
22
|
+
Wait.until!(description: "#{args.stub_name} is running", timeout_in_seconds: 10) do
|
23
|
+
response = Net::HTTP.get_response(URI("#{args.external_base_uri}/http_stub"))
|
24
|
+
raise "#{args.stub_name} is not running" unless response.code == "200"
|
25
25
|
end
|
26
|
-
puts "#{args
|
26
|
+
puts "#{args.stub_name} is running"
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
def define_commit_task
|
30
|
+
def define_commit_task(args)
|
31
31
|
desc "Ensures container runs"
|
32
|
-
task(commit:
|
32
|
+
task(commit: [ "#{args.task_prefix}docker:build", "#{args.task_prefix}docker:start" ]) do
|
33
33
|
begin
|
34
|
-
::Rake::Task["docker:test"].invoke
|
34
|
+
::Rake::Task["#{args.task_prefix}docker:test"].invoke
|
35
35
|
ensure
|
36
|
-
::Rake::Task["docker:stop"].invoke
|
36
|
+
::Rake::Task["#{args.task_prefix}docker:stop"].invoke
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
def define_publish_task(args)
|
42
42
|
desc "Publishes the container"
|
43
|
-
task(publish: "docker:build") do
|
44
|
-
system "#{PUBLISH_SCRIPT} #{args
|
43
|
+
task(publish: "#{args.task_prefix}docker:build") do
|
44
|
+
system "#{PUBLISH_SCRIPT} #{args.stub_name} #{args.version}"
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -3,6 +3,11 @@ module HttpStubDocker
|
|
3
3
|
|
4
4
|
class ResourceTasks < ::Rake::TaskLib
|
5
5
|
|
6
|
+
RESOURCE_DIR = "#{HttpStubDocker::BASE_DIR}/resource".freeze
|
7
|
+
DOCKERFILE_TEMPLATE_PATH = "#{RESOURCE_DIR}/Dockerfile.erb".freeze
|
8
|
+
|
9
|
+
private_constant :RESOURCE_DIR, :DOCKERFILE_TEMPLATE_PATH
|
10
|
+
|
6
11
|
def initialize(args)
|
7
12
|
define_clobber_task(args)
|
8
13
|
define_setup_task(args)
|
@@ -13,18 +18,37 @@ module HttpStubDocker
|
|
13
18
|
def define_clobber_task(args)
|
14
19
|
desc "Removes created Dockerfile and other resources"
|
15
20
|
task(:clobber) do
|
16
|
-
resources = Dir.entries("#{HttpStubDocker::BASE_DIR}/resource")
|
17
|
-
|
21
|
+
resources = Dir.entries("#{HttpStubDocker::BASE_DIR}/resource")
|
22
|
+
.reject { |file| File.directory?(file) }
|
23
|
+
.map { |file| file.end_with?(".erb") ? file[0..-5] : file }
|
24
|
+
rm resources.map { |resource| "#{args.stub_dir}/#{resource}" }, force: true
|
18
25
|
end
|
19
26
|
end
|
20
27
|
|
21
28
|
def define_setup_task(args)
|
22
29
|
desc "Creates Dockerfile and other resources in stub directory"
|
23
30
|
task(:setup) do
|
24
|
-
|
31
|
+
copy_template_files(args)
|
32
|
+
copy_non_template_files(args)
|
25
33
|
end
|
26
34
|
end
|
27
35
|
|
36
|
+
def copy_non_template_files(args)
|
37
|
+
files = Dir.entries(RESOURCE_DIR)
|
38
|
+
.reject { |file| File.directory?(file) || file.end_with?(".erb") }
|
39
|
+
.map { |file| "#{RESOURCE_DIR}/#{file}" }
|
40
|
+
files.map { |file| "#{args.stub_dir}/#{File.basename(file)}" }
|
41
|
+
.select { |destination_file| File.exist?(destination_file) }
|
42
|
+
.each { |destination_file| rm_f(destination_file) }
|
43
|
+
cp_r files, args.stub_dir
|
44
|
+
end
|
45
|
+
|
46
|
+
def copy_template_files(args)
|
47
|
+
dockerfile_erb = ERB.new(File.read(DOCKERFILE_TEMPLATE_PATH))
|
48
|
+
dockerfile_content = dockerfile_erb.result(args.instance_eval { binding })
|
49
|
+
File.write("#{args.stub_dir}/Dockerfile", dockerfile_content)
|
50
|
+
end
|
51
|
+
|
28
52
|
end
|
29
53
|
|
30
54
|
end
|
@@ -4,12 +4,12 @@ module HttpStubDocker
|
|
4
4
|
class ServerDaemonTasks
|
5
5
|
|
6
6
|
def initialize(args)
|
7
|
-
HttpStub::Server::Daemon.log_dir = ::File.expand_path("#{args
|
8
|
-
HttpStub::Server::Daemon.pid_dir = ::File.expand_path("#{args
|
7
|
+
HttpStub::Server::Daemon.log_dir = ::File.expand_path("#{args.stub_dir}/tmp/log", __FILE__)
|
8
|
+
HttpStub::Server::Daemon.pid_dir = ::File.expand_path("#{args.stub_dir}/tmp/pids", __FILE__)
|
9
9
|
|
10
|
-
configurer = args
|
10
|
+
configurer = args.configurer
|
11
11
|
configurer.stub_server.host = "localhost"
|
12
|
-
configurer.stub_server.port =
|
12
|
+
configurer.stub_server.port = args.port
|
13
13
|
HttpStub::Rake::ServerDaemonTasks.new(name: :stub_server, configurer: configurer)
|
14
14
|
end
|
15
15
|
|
@@ -3,22 +3,19 @@ module HttpStubDocker
|
|
3
3
|
|
4
4
|
class TaskGenerator < ::Rake::TaskLib
|
5
5
|
|
6
|
-
DEFAULT_PORT = 5000
|
7
6
|
DOCKER_TASK_CLASSES = [
|
8
7
|
HttpStubDocker::Rake::ResourceTasks,
|
9
8
|
HttpStubDocker::Rake::ContainerTasks,
|
10
9
|
HttpStubDocker::Rake::PipelineTasks
|
11
10
|
].freeze
|
12
11
|
|
13
|
-
private_constant :
|
12
|
+
private_constant :DOCKER_TASK_CLASSES
|
14
13
|
|
15
14
|
def initialize(args)
|
16
|
-
|
17
|
-
|
18
|
-
resolved_args[:external_base_uri] ||= "http://localhost:#{resolved_args[:port]}"
|
19
|
-
HttpStubDocker::Rake::ServerDaemonTasks.new(resolved_args)
|
15
|
+
arguments = HttpStubDocker::Rake::Arguments.new(args)
|
16
|
+
HttpStubDocker::Rake::ServerDaemonTasks.new(arguments)
|
20
17
|
namespace :docker do
|
21
|
-
DOCKER_TASK_CLASSES.each { |task_class| task_class.new(
|
18
|
+
DOCKER_TASK_CLASSES.each { |task_class| task_class.new(arguments) }
|
22
19
|
end
|
23
20
|
end
|
24
21
|
|
data/lib/http_stub_docker.rb
CHANGED
data/resource/.dockerignore
CHANGED
@@ -16,7 +16,7 @@ WORKDIR /root/app
|
|
16
16
|
RUN bundle install --without development
|
17
17
|
|
18
18
|
# Expose server port
|
19
|
-
EXPOSE
|
19
|
+
EXPOSE <%= port %>
|
20
20
|
|
21
21
|
# Start server & tail logs in order to sustain foreground process
|
22
22
|
CMD trap exit TERM; bundle exec rake stub_server:start && tail -f tmp/log/stub_server_console.log
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: http_stub_docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dueckes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
47
|
+
version: '0.43'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0.
|
54
|
+
version: '0.43'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: wait_until
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,13 +88,14 @@ extra_rdoc_files: []
|
|
88
88
|
files:
|
89
89
|
- "./bin/push_docker_image_to_ecr.sh"
|
90
90
|
- "./lib/http_stub_docker.rb"
|
91
|
+
- "./lib/http_stub_docker/rake/arguments.rb"
|
91
92
|
- "./lib/http_stub_docker/rake/container_tasks.rb"
|
92
93
|
- "./lib/http_stub_docker/rake/pipeline_tasks.rb"
|
93
94
|
- "./lib/http_stub_docker/rake/resource_tasks.rb"
|
94
95
|
- "./lib/http_stub_docker/rake/server_daemon_tasks.rb"
|
95
96
|
- "./lib/http_stub_docker/rake/task_generator.rb"
|
96
97
|
- "./resource/.dockerignore"
|
97
|
-
- "./resource/Dockerfile"
|
98
|
+
- "./resource/Dockerfile.erb"
|
98
99
|
homepage: http://github.com/MYOB-Technology/http_stub_docker
|
99
100
|
licenses:
|
100
101
|
- MIT
|