evrone-ci-worker 0.2.0.pre1 → 0.2.0.pre3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 58f2ff7f63d54397ceceb915a1beead7603abb5d
4
- data.tar.gz: 3bca9c6de4a0b62ce144e5c2e3356bb66ab88135
3
+ metadata.gz: c5891371d77f52eeae58e9692fcd97e024584903
4
+ data.tar.gz: 45e7c0f16129b0b79df1e076b11e638d7608cc40
5
5
  SHA512:
6
- metadata.gz: b23970e35db6cb112cbda92597ee903444a6ef54e282244d283532f8aaf64e736db833175836797f0f3eac39d9a3c87b2ecda31b2010cf0be6d0be9a8c542a2c
7
- data.tar.gz: 7f725fc9fbeca95f22d7d1f48e99b6b1debb405576e05f72f3117d8d8fa32615558c96f3d61e04a4e03822edfe3f90021eec96d2b1c1f235d37add55d32f1fa5
6
+ metadata.gz: a3331e43272c6b1bfe6d8d5e778f5c097a168a393cf65959a0610ad04b94550b96bbac8f03a10ce80fc5555870bd52a41fc2a19a3d69a8c59a07ee834434856a
7
+ data.tar.gz: 248eaaad99449fffe60e1c545ede8383f4d51cc4ebe89eb7b059baa7ad32c965daf6a5354c2a894f66dbd8c07797d2b22589e16713a58dca459b130d5479e435
data/Rakefile CHANGED
@@ -6,9 +6,11 @@ require "bundler/gem_tasks"
6
6
 
7
7
  RSpec::Core::RakeTask.new(:spec)
8
8
 
9
+ desc "download test repo and run spec"
9
10
  task :default => ["test:create_repo", :spec]
10
11
 
11
12
  namespace :test do
13
+ desc "download test repo"
12
14
  task :create_repo do
13
15
  dir = "fixtures/repo"
14
16
  unless File.directory? dir
@@ -19,6 +21,7 @@ namespace :test do
19
21
  end
20
22
  end
21
23
 
24
+ desc "run travis build"
22
25
  task :travis do
23
- exec "bundle exec rake SPEC_OPTS='--format documentation -t ~run_docker --order=rand'"
26
+ exec "bundle exec rake SPEC_OPTS='--format documentation -t ~run_docker -t ~webdav --order=rand'"
24
27
  end
data/bin/evrone-ci-worker CHANGED
@@ -4,14 +4,15 @@ require File.expand_path("../../lib/evrone/ci/worker", __FILE__)
4
4
 
5
5
  cli = Evrone::CI::Worker::CLI.new
6
6
 
7
- =begin
8
- Evrone::CI::Worker.configure do |c|
9
- c.docker.ssh.port = 2223
10
- c.docker.ssh.host = 'localhost'
11
- c.docker.create_options = {
12
- 'PortSpecs' => ['2022:22']
13
- }
7
+ if RUBY_PLATFORM =~ /darwin/ # developer
8
+ Evrone::CI::Worker.configure do |c|
9
+ c.webdav_cache_url = 'http://10.0.2.15:8080'
10
+ c.docker.ssh.port = 2223
11
+ c.docker.ssh.host = 'localhost'
12
+ c.docker.create_options = {
13
+ 'PortSpecs' => ['2022:22']
14
+ }
15
+ end
14
16
  end
15
- =end
16
17
 
17
18
  cli.run
data/docker/Dockerfile CHANGED
@@ -6,56 +6,12 @@ ENV DEBIAN_FRONTEND noninteractive
6
6
  # disable service autostarting
7
7
  ENV RUNLEVEL 1
8
8
 
9
- # replace init
10
- RUN dpkg-divert --local --rename --add /sbin/initctl
11
- RUN ln -s /bin/true /sbin/initctl
12
-
13
- RUN apt-get -qy update
14
- RUN apt-get install -qy curl git-core build-essential
15
-
16
- # add evrone repo
17
- RUN mkdir -p /etc/apt/sources.list.d
18
- RUN echo "deb http://download.opensuse.org/repositories/home:/dmexe/xUbuntu_12.04/ ./" > /etc/apt/sources.list.d/Evrone.list
19
- RUN curl http://download.opensuse.org/repositories/home:/dmexe/xUbuntu_12.04/Release.key | apt-key add -
20
- RUN apt-get -qy update
21
-
22
- # install runit
23
- RUN chmod 0000 /sbin/start
24
- RUN apt-get -qy install runit
25
- RUN chmod 0755 /sbin/start
9
+ # add runit helpers
26
10
  ADD ./sv-gen /usr/local/bin/sv-gen
27
11
  ADD ./sv-enable /usr/local/bin/sv-enable
28
12
 
29
- # set user password
30
- RUN useradd -m ci
31
- RUN echo "ci:ci" | chpasswd
32
- RUN apt-get -qy install sudo
33
- RUN echo "ci ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
34
-
35
- # fixes locales
36
- RUN locale-gen en_US.UTF-8
37
- RUN dpkg-reconfigure -fnoninteractive locales
38
- RUN update-locale LC_ALL="en_US.UTF-8" LANG="en_US.UTF-8" LANGUAGE="en_US"
39
-
40
- # install ssh
41
- RUN apt-get install -qy openssh-server
42
- RUN mkdir -p /var/run/sshd
43
- RUN sv-gen ssh "/usr/sbin/sshd -D -e"
44
-
45
- # install postgresql
46
- RUN apt-get install -qy postgresql
47
- RUN echo "host all all all trust" > /etc/postgresql/9.1/main/pg_hba.conf
48
- RUN sv-gen postgresql "/usr/lib/postgresql/9.1/bin/postgres -D /var/lib/postgresql/9.1/main -c config_file=/etc/postgresql/9.1/main/postgresql.conf" postgres
49
-
50
- # add ruby
51
- RUN apt-get install -qy rbenv rbenv-2.0.0-p195 rbenv-1.9.3-p448
52
- RUN env RBENV_VERSION=2.0.0-p195 rbenv exec gem install bundler --no-ri --no-rdoc
53
- RUN env RBENV_VERSION=1.9.3-p448 rbenv exec gem install bundler --no-ri --no-rdoc
54
- RUN rbenv rehash
55
-
56
- RUN apt-get -qy clean autoremove
57
-
58
- RUN sv-enable postgresql
59
- RUN sv-enable ssh
13
+ # run bootstrap
14
+ ADD ./bootstrap.sh /tmp/bootstrap.sh
15
+ RUN /tmp/bootstrap.sh && rm /tmp/bootstrap.sh
60
16
 
61
17
  ENTRYPOINT ["/usr/bin/runsvdir", "-P", "/etc/service"]
@@ -0,0 +1,66 @@
1
+ #!/bin/bash
2
+ set -x
3
+ set -e
4
+
5
+ # add ubuntu repos
6
+ echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
7
+ echo "deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse" >> /etc/apt/sources.list
8
+
9
+ # replace init
10
+ dpkg-divert --local --rename --add /sbin/initctl
11
+ ln -s /bin/true /sbin/initctl
12
+
13
+ apt-get -qy update
14
+ apt-get install -qy curl git-core build-essential
15
+
16
+ # add evrone repo
17
+ mkdir -p /etc/apt/sources.list.d
18
+ echo "deb http://download.opensuse.org/repositories/home:/dmexe/xUbuntu_12.04/ ./" > /etc/apt/sources.list.d/Evrone.list
19
+ curl http://download.opensuse.org/repositories/home:/dmexe/xUbuntu_12.04/Release.key | apt-key add -
20
+ apt-get -qy update
21
+
22
+ # add packages
23
+ apt-get install -qy libmysqlclient-dev libpq-dev imagemagick libmagickwand-dev \
24
+ libcurl4-openssl-dev nodejs postgresql-contrib-9.1 libxml2-dev libxslt-dev \
25
+ openjdk-7-jre-headless libsqlite3-dev libgeos-dev ruby
26
+
27
+ # install runit
28
+ chmod 0000 /sbin/start
29
+ apt-get -qy install runit
30
+ chmod 0755 /sbin/start
31
+
32
+ # set user password
33
+ useradd -m ci
34
+ echo "ci:ci" | chpasswd
35
+ apt-get -qy install sudo
36
+ echo "ci ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
37
+
38
+ # fixes locales
39
+ locale-gen en_US.UTF-8
40
+ dpkg-reconfigure -fnoninteractive locales
41
+ update-locale LC_ALL="en_US.UTF-8" LANG="en_US.UTF-8" LANGUAGE="en_US"
42
+
43
+ # install ssh
44
+ apt-get install -qy openssh-server
45
+ mkdir -p /var/run/sshd
46
+ sv-gen ssh "/usr/sbin/sshd -D -e"
47
+
48
+ # install postgresql
49
+ apt-get install -qy postgresql
50
+ echo "host all all all trust" > /etc/postgresql/9.1/main/pg_hba.conf
51
+ sv-gen postgresql "/usr/lib/postgresql/9.1/bin/postgres -D /var/lib/postgresql/9.1/main -c config_file=/etc/postgresql/9.1/main/postgresql.conf" postgres
52
+
53
+ # install mysql
54
+ apt-get install -qy mysql-server
55
+ sv-gen mysqld "/usr/sbin/mysqld" mysql
56
+
57
+ # add ruby
58
+ apt-get install -qy rbenv rbenv-2.0.0-p195 rbenv-1.9.3-p448
59
+ env RBENV_VERSION=2.0.0-p195 rbenv exec gem install bundler --no-ri --no-rdoc
60
+ env RBENV_VERSION=1.9.3-p448 rbenv exec gem install bundler --no-ri --no-rdoc
61
+ rbenv rehash
62
+
63
+ apt-get -qy clean autoremove
64
+
65
+ sv-enable postgresql
66
+ sv-enable ssh
data/docker/sv-gen CHANGED
@@ -31,7 +31,7 @@ set -e
31
31
  exec 2>&1
32
32
  cd ${DIR}
33
33
  CMD="${CMD}"
34
- exec chpst -u ${USER} \$CMD 2>&1
34
+ exec sudo -u ${USER} \$CMD 2>&1
35
35
  EOF
36
36
  chmod +x ${RUN_FILE}
37
37
 
@@ -31,6 +31,7 @@ module Evrone
31
31
  autoload :DockerStartContainer, File.expand_path("../worker/middlewares/docker_start_container", __FILE__)
32
32
  autoload :DockerFetchRepo, File.expand_path("../worker/middlewares/docker_fetch_repo", __FILE__)
33
33
  autoload :DockerScript, File.expand_path("../worker/middlewares/docker_script", __FILE__)
34
+ autoload :DockerWebdavCache, File.expand_path("../worker/middlewares/docker_webdav_cache", __FILE__)
34
35
 
35
36
  module Helper
36
37
  autoload :Logger, File.expand_path("../worker/helper/logger", __FILE__)
@@ -27,6 +27,7 @@ module Evrone
27
27
 
28
28
  workers: 1,
29
29
  path_prefix: nil,
30
+ webdav_cache_url:nil,
30
31
 
31
32
  docker: {
32
33
  remote_dir: "/home/ci",
@@ -15,6 +15,7 @@ module Evrone
15
15
  use UpdateJobStatus
16
16
  use DockerStartContainer
17
17
  use DockerFetchRepo
18
+ use DockerWebdavCache
18
19
  use DockerScript
19
20
  end
20
21
 
@@ -8,11 +8,12 @@ module Evrone
8
8
 
9
9
  include Helper::Logger
10
10
 
11
- attr_reader :output, :message
11
+ attr_reader :output, :message, :output_counter
12
12
 
13
13
  def initialize(perform_job_message)
14
- @output = ""
15
- @message = perform_job_message
14
+ @output_counter = 0
15
+ @output = ""
16
+ @message = perform_job_message
16
17
  end
17
18
 
18
19
  def add_to_output(str)
@@ -25,13 +26,16 @@ module Evrone
25
26
  add_to_output "$ #{cmd}\n"
26
27
  end
27
28
 
29
+ def add_trace_to_output(log)
30
+ add_to_output log.split(/\n/).map{|i| " ===> #{i}\n" }.join
31
+ end
32
+
28
33
  def create_job_log_message(data)
29
- tm = Time.now
34
+ @output_counter += 1
30
35
  Message::JobLog.new(
31
36
  build_id: message.id,
32
37
  job_id: message.job_id,
33
- tm: tm.to_i,
34
- tm_usec: tm.usec,
38
+ tm: @output_counter,
35
39
  log: data
36
40
  )
37
41
  end
@@ -21,7 +21,7 @@ module Evrone
21
21
  if code == 0
22
22
  app.call env
23
23
  else
24
- -1
24
+ code * -1
25
25
  end
26
26
  else
27
27
  app.call env
@@ -52,9 +52,6 @@ module Evrone
52
52
  def spawn_script(env)
53
53
  scm = create_scm(env)
54
54
 
55
- env.job.add_command_to_output("git clone #{scm.src} #{scm.path}")
56
- env.job.add_command_to_output("git checkout -q #{scm.sha}")
57
-
58
55
  script = "sh -c '#{scm.make_fetch_command}'"
59
56
  env.ssh.spawn script, &env.job.method(:add_to_output)
60
57
  end
@@ -34,7 +34,8 @@ module Evrone
34
34
  paranoid: false,
35
35
  forward_agent: false
36
36
  }
37
- env.job.add_to_output "open ssh session to #{user}@#{host}:#{ssh_options[:port]}"
37
+ sleep 2
38
+ env.job.add_to_output "open ssh session to #{user}@#{host}:#{ssh_options[:port]}\n"
38
39
  open_ssh(host, "ci", ssh_options) do |ssh|
39
40
  begin
40
41
  env.ssh = ssh
@@ -49,7 +50,7 @@ module Evrone
49
50
  env.container = ::Docker::Container.create create_options
50
51
  env.container.start
51
52
 
52
- env.job.add_to_output "using #{Socket.gethostname}/#{env.container.id}"
53
+ env.job.add_to_output "using #{Socket.gethostname}/#{env.container.id}\n"
53
54
 
54
55
  env.container_addr = config.docker.ssh.host
55
56
  env.container_addr ||= env.container.json['NetworkSettings']['IPAddress']
@@ -0,0 +1,95 @@
1
+ require 'net/scp'
2
+
3
+ module Evrone
4
+ module CI
5
+ module Worker
6
+
7
+ DockerWebdavCache = Struct.new(:app) do
8
+
9
+ include Helper::Config
10
+ include Helper::Logger
11
+
12
+ CASHER_URL = "https://raw.github.com/travis-ci/casher/master/bin/casher"
13
+ CASHER_BIN = "$HOME/.casher/bin/casher"
14
+
15
+ def call(env)
16
+ if env.ssh && config.webdav_cache_url
17
+ assign_url(env) &&
18
+ prepare(env) &&
19
+ fetch(env) &&
20
+ add(env)
21
+ end
22
+
23
+ rs = app.call env
24
+
25
+ if env.ssh && env.webdav_cache_url
26
+ push(env)
27
+ end
28
+
29
+ rs
30
+ end
31
+
32
+ private
33
+
34
+ def assign_url(env)
35
+ release = nil
36
+
37
+ env.ssh.spawn "lsb_release -s -c" do |out|
38
+ release ||= out.gsub(/[^a-z0-9]/, '')
39
+ end
40
+ release = 'unknown' unless release
41
+
42
+ name = env.job.message.name.dup
43
+ name << "-#{release}"
44
+ name << "-#{env.job.message.matrix_keys.join("_")}.tgz"
45
+ name = name.gsub(/[^a-z0-9_\-.]/, '')
46
+
47
+ env.webdav_cache_url = "#{config.webdav_cache_url.dup}/#{name}"
48
+ true
49
+ end
50
+
51
+ def push(env)
52
+ cmd = %{
53
+ #{CASHER_BIN} push #{env.webdav_cache_url}
54
+ }.compact
55
+
56
+ logger.debug "push cache to #{env.webdav_cache_url.inspect}"
57
+ env.ssh.spawn cmd, &env.job.method(:add_trace_to_output)
58
+ true
59
+ end
60
+
61
+ def add(env)
62
+ cmd = %{
63
+ #{CASHER_BIN} add $HOME/cached
64
+ }.compact
65
+ env.ssh.spawn cmd, &env.job.method(:add_trace_to_output)
66
+ true
67
+ end
68
+
69
+ def fetch(env)
70
+ logger.debug "fetch cache from #{env.webdav_cache_url.inspect}"
71
+ cmd = %{
72
+ #{CASHER_BIN} fetch #{env.webdav_cache_url}
73
+ }.compact
74
+ env.ssh.spawn cmd, &env.job.method(:add_trace_to_output)
75
+ true
76
+ end
77
+
78
+ def prepare(env)
79
+ cmd = %{
80
+ export CASHER_DIR=$HOME/.casher &&
81
+ mkdir -p $CASHER_DIR/bin &&
82
+ curl #{CASHER_URL} -s -o #{CASHER_BIN} &&
83
+ chmod +x #{CASHER_BIN} &&
84
+ echo casher successfuly downloaded
85
+ }.compact
86
+ code = env.ssh.spawn cmd, &env.job.method(:add_trace_to_output)
87
+ code == 0
88
+ end
89
+
90
+ end
91
+ end
92
+ end
93
+ end
94
+
95
+
@@ -20,9 +20,13 @@ module Evrone
20
20
  begin
21
21
  rs = app.call env
22
22
  rescue Exception => e
23
+ env.job.add_to_output("ERROR: #{e.inspect}\n")
23
24
  logger.error("ERROR: #{e.inspect}\n BACKTRACE:\n#{e.backtrace.map{|i| " #{i}" }.join("\n")}")
24
25
  end
25
26
 
27
+ msg = "\nDone. Your build exited with %s.\n"
28
+ env.job.add_to_output(msg % rs.abs)
29
+
26
30
  case
27
31
  when rs == 0
28
32
  update_status env.job, FINISHED
@@ -1,7 +1,7 @@
1
1
  module Evrone
2
2
  module CI
3
3
  module Worker
4
- VERSION = "0.2.0.pre1"
4
+ VERSION = "0.2.0.pre3"
5
5
  end
6
6
  end
7
7
  end
@@ -7,23 +7,26 @@ describe Evrone::CI::Worker::Job do
7
7
  subject { job }
8
8
 
9
9
  context "just created" do
10
- its(:message) { should eq message }
10
+ its(:message) { should eq message }
11
+ its(:output) { should eq '' }
12
+ its(:output_counter) { should eq 0 }
11
13
  end
12
14
 
13
15
  context "create_job_log_message" do
14
- let(:tm) { Time.new(2012, 12, 10, 15, 45) }
15
16
  let(:data) { 'log' }
16
17
  subject { job.create_job_log_message data }
17
18
 
18
- before do
19
- mock(Time).now { tm }
20
- end
21
-
22
19
  it { should be_an_instance_of(Evrone::CI::Message::JobLog) }
23
20
  its(:job_id) { should eq job.message.job_id }
24
21
  its(:build_id) { should eq job.message.id }
25
- its(:tm) { should eq tm.to_i }
22
+ its(:tm) { should eq 1 }
26
23
  its(:log) { should eq data }
24
+
25
+ it "should increment counter" do
26
+ expect {
27
+ subject
28
+ }.to change(job, :output_counter).by(1)
29
+ end
27
30
  end
28
31
 
29
32
  context "add_to_output" do
@@ -37,6 +40,13 @@ describe Evrone::CI::Worker::Job do
37
40
  subject
38
41
  }.to change(messages, :size).by(1)
39
42
  end
43
+
44
+ it "should increment output_counter" do
45
+ expect {
46
+ subject
47
+ }.to change(job, :output_counter).by(1)
48
+ expect(messages.first.tm).to eq 1
49
+ end
40
50
  end
41
51
 
42
52
  context "add_command_to_output" do
@@ -45,10 +55,40 @@ describe Evrone::CI::Worker::Job do
45
55
  subject { job.add_command_to_output(data) ; job }
46
56
 
47
57
  its(:output) { should eq "$ #{data}\n" }
58
+
48
59
  it "should delivery message" do
49
60
  expect {
50
61
  subject
51
62
  }.to change(messages, :size).by(1)
52
63
  end
64
+
65
+ it "should increment output_counter" do
66
+ expect {
67
+ subject
68
+ }.to change(job, :output_counter).by(1)
69
+ expect(messages.first.tm).to eq 1
70
+ end
53
71
  end
72
+
73
+ context "add_trace_to_output" do
74
+ let(:data) { 'data' }
75
+ let(:messages) { Evrone::CI::Worker::JobLogsConsumer.messages }
76
+ subject { job.add_trace_to_output(data) ; job }
77
+
78
+ its(:output) { should eq " ===> #{data}\n" }
79
+
80
+ it "should delivery message" do
81
+ expect {
82
+ subject
83
+ }.to change(messages, :size).by(1)
84
+ end
85
+
86
+ it "should increment output_counter" do
87
+ expect {
88
+ subject
89
+ }.to change(job, :output_counter).by(1)
90
+ expect(messages.first.tm).to eq 1
91
+ end
92
+ end
93
+
54
94
  end
@@ -18,7 +18,7 @@ describe Evrone::CI::Worker::DockerFetchRepo, run_docker: true do
18
18
  context "when fail to fetch repo" do
19
19
  let(:options) { { src: "/not-exists-repo.git" } }
20
20
  it "should be" do
21
- expect(subject).to eq(-1)
21
+ expect(subject).to eq(-128)
22
22
  expect(job.output).to be_include("does not exist")
23
23
  end
24
24
  end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe Evrone::CI::Worker::DockerWebdavCache, run_docker: true, webdav: true do
4
+ let(:exit_code) { 0 }
5
+ let(:app) {
6
+ ->(env) {
7
+ file = "$HOME/cached/foo.txt"
8
+ cmd = %{
9
+ if [ -f #{file} ] ; then
10
+ echo "!exists" ;
11
+ cat #{file} ;
12
+ else
13
+ echo "!touch" ;
14
+ echo 1 > #{file} ;
15
+ fi
16
+ }.compact
17
+ env.ssh.spawn cmd, &job.method(:add_to_output)
18
+ }
19
+ }
20
+ let(:job) { create :job }
21
+ let(:env) { OpenStruct.new job: job }
22
+ let(:mid) { described_class.new app }
23
+ let(:docker_mid) { Evrone::CI::Worker::DockerStartContainer.new(mid) }
24
+
25
+ subject { docker_mid.call env }
26
+
27
+ before do
28
+ Evrone::CI::Worker.config.webdav_cache_url = 'http://192.168.44.1:8080/'
29
+ end
30
+
31
+ context "first run" do
32
+ it "should be" do
33
+ expect(subject).to eq 0
34
+ end
35
+ end
36
+
37
+ context "next run" do
38
+ before do
39
+ expect(docker_mid.call env).to eq 0
40
+ job.output.clear
41
+ end
42
+ it "should be" do
43
+ expect(subject).to eq 0
44
+ expect(job.output).to match(/\!exists/)
45
+ end
46
+
47
+ end
48
+ end
49
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evrone-ci-worker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre1
4
+ version: 0.2.0.pre3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-03 00:00:00.000000000 Z
11
+ date: 2013-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evrone-ci-common
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0.pre1
19
+ version: 0.2.0.pre3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.2.0.pre1
26
+ version: 0.2.0.pre3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: evrone-ci-message
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.0.pre1
33
+ version: 0.2.0.pre3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.0.pre1
40
+ version: 0.2.0.pre3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: evrone-common-amqp
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -166,6 +166,7 @@ files:
166
166
  - Rakefile
167
167
  - bin/evrone-ci-worker
168
168
  - docker/Dockerfile
169
+ - docker/bootstrap.sh
169
170
  - docker/sv-enable
170
171
  - docker/sv-gen
171
172
  - evrone-ci-worker.gemspec
@@ -185,6 +186,7 @@ files:
185
186
  - lib/evrone/ci/worker/middlewares/docker_fetch_repo.rb
186
187
  - lib/evrone/ci/worker/middlewares/docker_script.rb
187
188
  - lib/evrone/ci/worker/middlewares/docker_start_container.rb
189
+ - lib/evrone/ci/worker/middlewares/docker_webdav_cache.rb
188
190
  - lib/evrone/ci/worker/middlewares/local_create_dirs.rb
189
191
  - lib/evrone/ci/worker/middlewares/local_fetch_repo.rb
190
192
  - lib/evrone/ci/worker/middlewares/local_script.rb
@@ -200,6 +202,7 @@ files:
200
202
  - spec/lib/worker/middlewares/docker_fetch_repo_spec.rb
201
203
  - spec/lib/worker/middlewares/docker_script_spec.rb
202
204
  - spec/lib/worker/middlewares/docker_start_container_spec.rb
205
+ - spec/lib/worker/middlewares/docker_webdav_cache_spec.rb
203
206
  - spec/lib/worker/middlewares/local_create_dirs_spec.rb
204
207
  - spec/lib/worker/middlewares/local_fetch_repo_spec.rb
205
208
  - spec/lib/worker/middlewares/local_script_spec.rb
@@ -241,6 +244,7 @@ test_files:
241
244
  - spec/lib/worker/middlewares/docker_fetch_repo_spec.rb
242
245
  - spec/lib/worker/middlewares/docker_script_spec.rb
243
246
  - spec/lib/worker/middlewares/docker_start_container_spec.rb
247
+ - spec/lib/worker/middlewares/docker_webdav_cache_spec.rb
244
248
  - spec/lib/worker/middlewares/local_create_dirs_spec.rb
245
249
  - spec/lib/worker/middlewares/local_fetch_repo_spec.rb
246
250
  - spec/lib/worker/middlewares/local_script_spec.rb