drydocker 0.1.8 → 0.1.9
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/.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
|
-
|