drydocker 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/Dockerfile +4 -0
- data/README.md +10 -4
- data/Rakefile +47 -22
- data/VERSION +1 -1
- data/bin/drydocker +17 -12
- data/wercker.yml +46 -21
- metadata +3 -4
- data/drydocker.gemspec +0 -81
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7295ea94e506672b60d0111d0693e2f1da12bfa
|
4
|
+
data.tar.gz: 4506dea9eb88fad9eefbb581b49adf81390176f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d08ef807e75b9d8d23b26240ac092f0738eb3f0417174b112ce4e747fbb714c16d388f08207019f1a7ecc8c6132ab1b7d2be6543c5d42326cc680c5c85611fe
|
7
|
+
data.tar.gz: caf3900c718c90366cbedfa9a4e55625448c545ada7ee37210f08cd39a9e591a49ab49fc478d6bd1b2d10d15cae510c1aeb1a31f1a92ee3de3e367589339e6db
|
data/.rubocop.yml
CHANGED
data/Dockerfile
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
FROM ruby:2.2.0
|
2
2
|
ADD . /drydocker
|
3
|
+
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 \
|
4
|
+
&& echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
|
5
|
+
RUN apt-get -yq update && apt-get -yq upgrade
|
6
|
+
RUN apt-get -yq install lxc-docker-1.4.1
|
3
7
|
WORKDIR /drydocker
|
4
8
|
RUN bundle install
|
5
9
|
RUN bundle exec rspec spec
|
data/README.md
CHANGED
@@ -38,10 +38,16 @@ the output of `drydocker -h` for more information on the flags to use.
|
|
38
38
|
|
39
39
|
## Links
|
40
40
|
|
41
|
-
* Source code:
|
42
|
-
* Build/Test:
|
43
|
-
* Docker container: https://registry.hub.docker.com/u/silarsis/drydocker
|
44
|
-
* RubyGem:
|
41
|
+
* Source code: <https://github.com/silarsis/drydocker>
|
42
|
+
* Build/Test: <https://app.wercker.com/#applications/54b446f6da3a4af764100e91>
|
43
|
+
* Docker container: <https://registry.hub.docker.com/u/silarsis/drydocker/>
|
44
|
+
* RubyGem: <https://rubygems.org/gems/drydocker>
|
45
|
+
|
46
|
+
## Releasing
|
47
|
+
|
48
|
+
Checkout the code, make changes, run `rake version:bump:minor`
|
49
|
+
(see <https://github.com/technicalpickles/jeweler#version-bumping> for options),
|
50
|
+
`git push` - wercker will do the rest.
|
45
51
|
|
46
52
|
## Copyright
|
47
53
|
|
data/Rakefile
CHANGED
@@ -1,51 +1,58 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
# Monkey patch to add an "unindent" method for heredocs
|
4
|
+
class String
|
5
|
+
def unindent
|
6
|
+
gsub(/^#{scan(/^\s*/).min_by{|l|l.length}}/, "")
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
require "rubygems"
|
11
|
+
require "bundler"
|
5
12
|
begin
|
6
13
|
Bundler.setup(:default, :development)
|
7
14
|
rescue Bundler::BundlerError => e
|
8
15
|
$stderr.puts e.message
|
9
|
-
$stderr.puts
|
16
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
17
|
exit e.status_code
|
11
18
|
end
|
12
|
-
require
|
19
|
+
require "rake"
|
13
20
|
|
14
21
|
def version
|
15
|
-
File.exist?(
|
22
|
+
File.exist?("VERSION") ? File.read("VERSION").strip : ""
|
16
23
|
end
|
17
24
|
|
18
|
-
require
|
25
|
+
require "jeweler"
|
19
26
|
Jeweler::Tasks.new do |gem|
|
20
|
-
gem.name =
|
21
|
-
gem.homepage =
|
22
|
-
gem.license =
|
23
|
-
gem.summary =
|
24
|
-
gem.description =
|
25
|
-
gem.email =
|
26
|
-
gem.authors = [
|
27
|
+
gem.name = "drydocker"
|
28
|
+
gem.homepage = "http://github.com/silarsis/drydocker"
|
29
|
+
gem.license = "MIT"
|
30
|
+
gem.summary = "Test something in a loop, in a docker container"
|
31
|
+
gem.description = "Run tests on change in a docker container continuously"
|
32
|
+
gem.email = "kevin@littlejohn.id.au"
|
33
|
+
gem.authors = ["Kevin Littlejohn"]
|
27
34
|
# dependencies defined in Gemfile
|
28
35
|
end
|
29
36
|
Jeweler::RubygemsDotOrgTasks.new
|
30
37
|
|
31
|
-
desc
|
38
|
+
desc "Code coverage detail"
|
32
39
|
task :simplecov do
|
33
|
-
ENV[
|
34
|
-
Rake::Task[
|
40
|
+
ENV["COVERAGE"] = "true"
|
41
|
+
Rake::Task["test"].execute
|
35
42
|
end
|
36
43
|
|
37
44
|
task default: :test
|
38
45
|
|
39
|
-
require
|
46
|
+
require "rdoc/task"
|
40
47
|
Rake::RDocTask.new do |rdoc|
|
41
|
-
rdoc.rdoc_dir =
|
48
|
+
rdoc.rdoc_dir = "rdoc"
|
42
49
|
rdoc.title = "drydocker #{version}"
|
43
|
-
rdoc.rdoc_files.include(
|
44
|
-
rdoc.rdoc_files.include(
|
50
|
+
rdoc.rdoc_files.include("README*")
|
51
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
45
52
|
end
|
46
53
|
|
47
54
|
namespace :build do
|
48
|
-
desc
|
55
|
+
desc "Build the Docker container"
|
49
56
|
task :docker do
|
50
57
|
system("docker build -t silarsis/drydocker:#{version} .")
|
51
58
|
system("docker tag -f silarsis/drydocker:#{version} silarsis/drydocker:latest")
|
@@ -53,7 +60,25 @@ namespace :build do
|
|
53
60
|
end
|
54
61
|
|
55
62
|
namespace :release do
|
56
|
-
|
63
|
+
task :create_credentials do
|
64
|
+
unless ENV["RUBYGEMS_API_KEY"].nil?
|
65
|
+
credfile = File.expand_path("~/.gem/credentials")
|
66
|
+
unless File.exist? credfile
|
67
|
+
umask = File.umask 0177
|
68
|
+
File.write(credfile, <<-EOF.unindent
|
69
|
+
---
|
70
|
+
:rubygems_api_key: #{ENV["RUBYGEMS_API_KEY"]}
|
71
|
+
EOF
|
72
|
+
)
|
73
|
+
File.umask umask
|
74
|
+
end
|
75
|
+
end
|
76
|
+
`git config --global user.email kevin@littlejohn.id.au` if `git config user.email`.empty?
|
77
|
+
`git config --global user.name "Kevin Littlejohn (Wercker)"` if `git config user.name`.empty?
|
78
|
+
`git config --global push.default current` if `git config push.default`.empty?
|
79
|
+
`git config --global github.user silarsis` if `git config github.user`.empty?
|
80
|
+
end
|
81
|
+
desc "Release the Docker container"
|
57
82
|
task :docker do
|
58
83
|
system("docker push silarsis/drydocker:#{version}")
|
59
84
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.9
|
data/bin/drydocker
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "drydocker"
|
4
|
+
require "optparse"
|
5
5
|
|
6
6
|
# Command line parser to setup options
|
7
7
|
# :name, :command, :image, :entrypoint, :path
|
@@ -9,35 +9,40 @@ def parse(args)
|
|
9
9
|
options = Drydocker::Config.default_config
|
10
10
|
|
11
11
|
opt_parser = OptionParser.new do |opts|
|
12
|
-
opts.banner =
|
13
|
-
opts.separator
|
14
|
-
opts.separator
|
12
|
+
opts.banner = "Usage: drydocker [options]"
|
13
|
+
opts.separator ""
|
14
|
+
opts.separator "Specific options:"
|
15
15
|
|
16
|
-
opts.on(
|
16
|
+
opts.on("-f", "--filename [FILENAME]", "File of options to load") do |fn|
|
17
17
|
options.load(fn)
|
18
18
|
end
|
19
19
|
|
20
|
-
opts.on(
|
20
|
+
opts.on("-n", "--name [NAME]",
|
21
|
+
"Container name to run tests in, default \"<imagename>-test\"") do |name|
|
21
22
|
options[:name] = name
|
22
23
|
end
|
23
24
|
|
24
|
-
opts.on(
|
25
|
+
opts.on("-c", "--command [COMMAND]",
|
26
|
+
"command to run, default '#{options[:command]}'") do |cmd|
|
25
27
|
options[:command] = cmd
|
26
28
|
end
|
27
29
|
|
28
|
-
opts.on(
|
30
|
+
opts.on("-i", "--image [IMAGE]",
|
31
|
+
"image to run for testing, default '#{options[:image]}'") do |img|
|
29
32
|
options[:image] = img
|
30
33
|
end
|
31
34
|
|
32
|
-
opts.on(
|
35
|
+
opts.on("-e", "--entrypoint [ENTRYPOINT]",
|
36
|
+
"entrypoint in case you need to override that, default nil") do |entry|
|
33
37
|
options[:entrypoint] = entry
|
34
38
|
end
|
35
39
|
|
36
|
-
opts.on(
|
40
|
+
opts.on("-p", "--path [PATH]",
|
41
|
+
"directory to monitor and mount for testing, default '#{options[:path]}'") do |path|
|
37
42
|
options[:path] = path
|
38
43
|
end
|
39
44
|
|
40
|
-
opts.on(
|
45
|
+
opts.on("-v", "--[no-]verbose", "verbose output") do |verbose|
|
41
46
|
options[:verbose] = verbose
|
42
47
|
end
|
43
48
|
end
|
data/wercker.yml
CHANGED
@@ -1,27 +1,52 @@
|
|
1
1
|
box: wercker/rvm
|
2
2
|
# Build definition
|
3
3
|
build:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
# The steps that will be executed on build
|
5
|
+
# See the Ruby section on the wercker devcenter:
|
6
|
+
# http://devcenter.wercker.com/articles/languages/ruby.html
|
7
|
+
steps:
|
8
|
+
# Uncomment this to force RVM to use a specific Ruby version
|
9
|
+
# - rvm-use:
|
10
|
+
# version: 2.2.0
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
# A step that executes `bundle install` command
|
13
|
+
- bundle-install
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
15
|
+
# A custom script step, name value is used in the UI
|
16
|
+
# and the code value contains the command that get executed
|
17
|
+
- script:
|
18
|
+
name: echo ruby information
|
19
|
+
code: |
|
20
|
+
echo "ruby version $(ruby --version) running"
|
21
|
+
echo "from location $(which ruby)"
|
22
|
+
echo -p "gem list: $(gem list)"
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
# Add more steps here:
|
25
|
+
- script:
|
26
|
+
name: rspec
|
27
|
+
code: bundle exec rspec spec
|
28
|
+
|
29
|
+
- bundle-package
|
30
|
+
|
31
|
+
after-steps:
|
32
|
+
- sherzberg/slack-notify@0.0.11:
|
33
|
+
subdomain: littlejohn
|
34
|
+
token: $SLACK_TOKEN
|
35
|
+
channel: "#deployment"
|
36
|
+
username: wercker
|
37
|
+
|
38
|
+
deploy:
|
39
|
+
steps:
|
40
|
+
- wercker/add-ssh-key@1.0.1:
|
41
|
+
keyname: GITHUB_KEY
|
42
|
+
- script:
|
43
|
+
name: release
|
44
|
+
code: |
|
45
|
+
bundle exec rake release:create_credentials
|
46
|
+
bundle exec rake release
|
47
|
+
after-steps:
|
48
|
+
- sherzberg/slack-notify@0.0.11:
|
49
|
+
subdomain: littlejohn
|
50
|
+
token: $SLACK_TOKEN
|
51
|
+
channel: "#deployment"
|
52
|
+
username: wercker
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drydocker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Littlejohn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: listen
|
@@ -156,7 +156,6 @@ files:
|
|
156
156
|
- Rakefile
|
157
157
|
- VERSION
|
158
158
|
- bin/drydocker
|
159
|
-
- drydocker.gemspec
|
160
159
|
- lib/drydocker.rb
|
161
160
|
- spec/drydocker_spec.rb
|
162
161
|
- spec/spec_helper.rb
|
@@ -181,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
180
|
version: '0'
|
182
181
|
requirements: []
|
183
182
|
rubyforge_project:
|
184
|
-
rubygems_version: 2.
|
183
|
+
rubygems_version: 2.4.5
|
185
184
|
signing_key:
|
186
185
|
specification_version: 4
|
187
186
|
summary: Test something in a loop, in a docker container
|
data/drydocker.gemspec
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: drydocker 0.1.8 ruby lib
|
6
|
-
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
s.name = "drydocker"
|
9
|
-
s.version = "0.1.8"
|
10
|
-
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
-
s.require_paths = ["lib"]
|
13
|
-
s.authors = ["Kevin Littlejohn"]
|
14
|
-
s.date = "2015-01-16"
|
15
|
-
s.description = "Run tests on change in a docker container continuously"
|
16
|
-
s.email = "kevin@littlejohn.id.au"
|
17
|
-
s.executables = ["drydocker"]
|
18
|
-
s.extra_rdoc_files = [
|
19
|
-
"LICENSE.txt",
|
20
|
-
"README.md"
|
21
|
-
]
|
22
|
-
s.files = [
|
23
|
-
".dockerignore",
|
24
|
-
".document",
|
25
|
-
".rubocop.yml",
|
26
|
-
"Dockerfile",
|
27
|
-
"Gemfile",
|
28
|
-
"Gemfile.lock",
|
29
|
-
"LICENSE.txt",
|
30
|
-
"README.md",
|
31
|
-
"Rakefile",
|
32
|
-
"VERSION",
|
33
|
-
"bin/drydocker",
|
34
|
-
"drydocker.gemspec",
|
35
|
-
"lib/drydocker.rb",
|
36
|
-
"spec/drydocker_spec.rb",
|
37
|
-
"spec/spec_helper.rb",
|
38
|
-
"wercker.yml"
|
39
|
-
]
|
40
|
-
s.homepage = "http://github.com/silarsis/drydocker"
|
41
|
-
s.licenses = ["MIT"]
|
42
|
-
s.rubygems_version = "2.2.2"
|
43
|
-
s.summary = "Test something in a loop, in a docker container"
|
44
|
-
|
45
|
-
if s.respond_to? :specification_version then
|
46
|
-
s.specification_version = 4
|
47
|
-
|
48
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
-
s.add_runtime_dependency(%q<listen>, ["~> 2.8"])
|
50
|
-
s.add_runtime_dependency(%q<ptools>, ["~> 1.3"])
|
51
|
-
s.add_development_dependency(%q<shoulda>, ["~> 3.5"])
|
52
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
53
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
54
|
-
s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
|
55
|
-
s.add_development_dependency(%q<simplecov>, ["~> 0.9"])
|
56
|
-
s.add_development_dependency(%q<rspec>, ["~> 3.1"])
|
57
|
-
s.add_development_dependency(%q<fuubar>, ["~> 2.0"])
|
58
|
-
else
|
59
|
-
s.add_dependency(%q<listen>, ["~> 2.8"])
|
60
|
-
s.add_dependency(%q<ptools>, ["~> 1.3"])
|
61
|
-
s.add_dependency(%q<shoulda>, ["~> 3.5"])
|
62
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
63
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
64
|
-
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
65
|
-
s.add_dependency(%q<simplecov>, ["~> 0.9"])
|
66
|
-
s.add_dependency(%q<rspec>, ["~> 3.1"])
|
67
|
-
s.add_dependency(%q<fuubar>, ["~> 2.0"])
|
68
|
-
end
|
69
|
-
else
|
70
|
-
s.add_dependency(%q<listen>, ["~> 2.8"])
|
71
|
-
s.add_dependency(%q<ptools>, ["~> 1.3"])
|
72
|
-
s.add_dependency(%q<shoulda>, ["~> 3.5"])
|
73
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
74
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
75
|
-
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
76
|
-
s.add_dependency(%q<simplecov>, ["~> 0.9"])
|
77
|
-
s.add_dependency(%q<rspec>, ["~> 3.1"])
|
78
|
-
s.add_dependency(%q<fuubar>, ["~> 2.0"])
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|