kitchen_hooks 1.8.5 → 1.8.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +6 -1
- data/Gemfile +5 -0
- data/Rakefile +12 -2
- data/VERSION +1 -1
- data/Vagrantfile +63 -0
- data/etc/commit-constraint.json +1 -1
- data/kitchen_hooks.gemspec +1 -0
- data/lib/kitchen_hooks/helpers/sync_servers.rb +2 -2
- data/lib/kitchen_hooks/helpers.rb +12 -1
- data/tasks/package/Dockerfile +9 -0
- data/tasks/package/_package.sh +36 -0
- data/tasks/package/kitchen_hooks.sh +7 -0
- data/tasks/package/post-install.sh +19 -0
- data/tasks/package/run.sh +23 -0
- data/tasks/test/Dockerfile +16 -0
- data/tasks/test/run.sh +23 -0
- data/test/test_helper.rb +7 -0
- data/test/test_kitchen_hooks.rb +19 -0
- metadata +15 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d67d86082ea4febb73e0ad4aaed12aedb0f65d9
|
4
|
+
data.tar.gz: 22a9ea6b945b504861da5f7cd8a46a9c253b6165
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91ffbb5eae7d78774041e0e026ab32a712b8f88f9c4e77af7ee703f574912588b233aefbbbfa77393d736e07260bafdb8a6d042e8e0dbc33c98f0b81ba2b64ca
|
7
|
+
data.tar.gz: cc824c2924c0cc38b03f88c025981d3ce3c21bdf450d7d50a049a31470b86ef9d2b9322d1e37459ab50b7942e080cc218f23e0d5cc6f3f9042d1c34fcf8e9f9d
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -3,6 +3,7 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :development do
|
6
|
+
gem 'fpm'
|
6
7
|
gem 'pry'
|
7
8
|
gem 'rake'
|
8
9
|
gem 'yard'
|
@@ -13,4 +14,8 @@ end
|
|
13
14
|
|
14
15
|
group :test do
|
15
16
|
gem 'minitest'
|
17
|
+
gem 'ci_reporter'
|
18
|
+
gem 'ci_reporter_minitest'
|
19
|
+
gem 'simplecov', require: false
|
20
|
+
gem 'simplecov-cobertura', github: 'sczizzo/simplecov-cobertura'
|
16
21
|
end
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
+
require 'ci/reporter/rake/minitest'
|
1
2
|
require 'shellwords'
|
2
|
-
require 'rubygems'
|
3
3
|
require 'bundler'
|
4
4
|
require 'rake'
|
5
5
|
|
@@ -12,7 +12,17 @@ Rake::TestTask.new(:test) do |test|
|
|
12
12
|
test.verbose = true
|
13
13
|
end
|
14
14
|
|
15
|
-
task :
|
15
|
+
task default: :test
|
16
|
+
|
17
|
+
task minitest: %w[ ci:setup:minitest test ]
|
18
|
+
|
19
|
+
task :report do
|
20
|
+
%W[ minitest yard ].each do |task_name|
|
21
|
+
sh "bundle exec rake #{task_name}" do
|
22
|
+
# Ignore errors
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
16
26
|
|
17
27
|
|
18
28
|
# "rake yard"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.8.
|
1
|
+
1.8.6
|
data/Vagrantfile
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- mode: ruby -*-
|
3
|
+
# vi: set ft=ruby :
|
4
|
+
Vagrant.configure('2') do |config|
|
5
|
+
config.vm.provider :virtualbox do |vbox|
|
6
|
+
vbox.customize [ 'modifyvm', :id, '--memory', 4096 ]
|
7
|
+
vbox.customize [ 'modifyvm', :id, '--cpus', 4 ]
|
8
|
+
end
|
9
|
+
|
10
|
+
config.vm.define 'precise-test' do |node|
|
11
|
+
node.vm.box = 'bento/ubuntu-12.04'
|
12
|
+
node.vm.hostname = 'test'
|
13
|
+
node.vm.network :private_network, ip: '10.10.10.10'
|
14
|
+
node.vm.provision :shell, inline: <<-END
|
15
|
+
set -x
|
16
|
+
set -e
|
17
|
+
RUBY_VERSION=2.2
|
18
|
+
|
19
|
+
if ! hash ruby >/dev/null 2>&1 ; then
|
20
|
+
apt-get update
|
21
|
+
apt-get install -y make build-essential autoconf
|
22
|
+
apt-get install -y vim htop curl git
|
23
|
+
apt-get install -y libxml2-dev libxslt1-dev
|
24
|
+
apt-get install -y software-properties-common python-software-properties
|
25
|
+
apt-add-repository -y ppa:brightbox/ruby-ng
|
26
|
+
apt-get update
|
27
|
+
apt-get install -y "ruby${RUBY_VERSION}" "ruby${RUBY_VERSION}-dev"
|
28
|
+
apt-get install -y ruby-switch
|
29
|
+
ruby-switch --set "ruby${RUBY_VERSION}"
|
30
|
+
fi
|
31
|
+
|
32
|
+
dpkg -i /vagrant/tasks/package/artifacts/*.deb
|
33
|
+
kitchen_hooks art
|
34
|
+
END
|
35
|
+
end
|
36
|
+
|
37
|
+
config.vm.define 'trusty-test' do |node|
|
38
|
+
node.vm.box = 'bento/ubuntu-14.04'
|
39
|
+
node.vm.hostname = 'test'
|
40
|
+
node.vm.network :private_network, ip: '10.10.10.11'
|
41
|
+
node.vm.provision :shell, inline: <<-END
|
42
|
+
set -x
|
43
|
+
set -e
|
44
|
+
RUBY_VERSION=2.2
|
45
|
+
|
46
|
+
if ! hash ruby >/dev/null 2>&1 ; then
|
47
|
+
apt-get update
|
48
|
+
apt-get install -y make build-essential autoconf
|
49
|
+
apt-get install -y vim htop curl git
|
50
|
+
apt-get install -y libxml2-dev libxslt1-dev
|
51
|
+
apt-get install -y software-properties-common
|
52
|
+
apt-add-repository -y ppa:brightbox/ruby-ng
|
53
|
+
apt-get update
|
54
|
+
apt-get install -y "ruby${RUBY_VERSION}" "ruby${RUBY_VERSION}-dev"
|
55
|
+
apt-get install -y ruby-switch
|
56
|
+
ruby-switch --set "ruby${RUBY_VERSION}"
|
57
|
+
fi
|
58
|
+
|
59
|
+
dpkg -i /vagrant/tasks/package/artifacts/*.deb
|
60
|
+
kitchen_hooks art
|
61
|
+
END
|
62
|
+
end
|
63
|
+
end
|
data/etc/commit-constraint.json
CHANGED
data/kitchen_hooks.gemspec
CHANGED
@@ -45,8 +45,8 @@ private
|
|
45
45
|
end
|
46
46
|
|
47
47
|
nodes.map do |n|
|
48
|
-
|
49
|
-
@clients[n.name] =
|
48
|
+
client = clients.select { |c| c.name == n.name }.shift
|
49
|
+
@clients[n.name] = client unless client.nil?
|
50
50
|
n
|
51
51
|
end
|
52
52
|
end.flatten
|
@@ -65,6 +65,13 @@ module KitchenHooks
|
|
65
65
|
$stdout.puts 'Applying constraints'
|
66
66
|
constraints = lockfile_constraints 'Berksfile.lock'
|
67
67
|
environment = tag_name event
|
68
|
+
|
69
|
+
environments = Dir['environments/*.json'].map { |f| File.basename f, '.json' }
|
70
|
+
unless environments.include?(environment)
|
71
|
+
$stderr.puts 'WARNING: No local environment: %s' % environment
|
72
|
+
next
|
73
|
+
end
|
74
|
+
|
68
75
|
knives.peach do |k|
|
69
76
|
apply_constraints constraints, environment, k
|
70
77
|
verify_constraints constraints, environment, k
|
@@ -83,6 +90,10 @@ module KitchenHooks
|
|
83
90
|
|
84
91
|
$stdout.puts "finished perform_constraint_application: #{event['after']}"
|
85
92
|
return # no error
|
93
|
+
|
94
|
+
rescue Git::GitExecuteError
|
95
|
+
$stderr.puts 'WARNING: Could not check out tagged commit'
|
96
|
+
return false
|
86
97
|
end
|
87
98
|
|
88
99
|
|
@@ -451,7 +462,7 @@ module KitchenHooks
|
|
451
462
|
|
452
463
|
|
453
464
|
def self.cookbook_name event
|
454
|
-
repo_name(event).sub
|
465
|
+
repo_name(event).sub(/^(app|base|realm|fork)_/, 'bjn_')
|
455
466
|
end
|
456
467
|
|
457
468
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -x
|
3
|
+
set -e
|
4
|
+
|
5
|
+
ARTIFACTS="${1:-artifacts}"
|
6
|
+
|
7
|
+
ruby=ruby2.2
|
8
|
+
version=$(cat VERSION)
|
9
|
+
|
10
|
+
rm -rf doc
|
11
|
+
rm -rf etc
|
12
|
+
rm -rf tmp
|
13
|
+
rm -rf .bundle
|
14
|
+
rm -rf .vagrant
|
15
|
+
rm -rf vendor
|
16
|
+
rm -rf pkg
|
17
|
+
mkdir -p pkg
|
18
|
+
|
19
|
+
bundle update
|
20
|
+
bundle package --all
|
21
|
+
|
22
|
+
bundle exec fpm -n kitchen_hooks \
|
23
|
+
--after-install tasks/package/post-install.sh \
|
24
|
+
--after-upgrade tasks/package/post-install.sh \
|
25
|
+
-d "$ruby" -d "$ruby-dev" -d git \
|
26
|
+
-s dir -t deb -v "$version" \
|
27
|
+
tasks/package/kitchen_hooks.sh=/usr/local/bin/kitchen_hooks \
|
28
|
+
./=/opt/kitchen_hooks
|
29
|
+
|
30
|
+
# gem uninstall -aIx
|
31
|
+
# dpkg -i *.deb
|
32
|
+
# ls -la /opt/kitchen_hooks
|
33
|
+
# kitchen_hooks art
|
34
|
+
|
35
|
+
mkdir -p $ARTIFACTS
|
36
|
+
mv *.deb $ARTIFACTS
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -e
|
3
|
+
KITCHEN_HOOKS_RUBY="${KITCHEN_HOOKS_RUBY:-/usr/bin/ruby2.2}"
|
4
|
+
KITCHEN_HOOKS_ROOT="${KITCHEN_HOOKS_ROOT:-/opt/kitchen_hooks}"
|
5
|
+
export BUNDLE_GEMFILE="$KITCHEN_HOOKS_ROOT/Gemfile"
|
6
|
+
unset BUNDLE_IGNORE_CONFIG
|
7
|
+
exec "$KITCHEN_HOOKS_RUBY" -rbundler/setup "$KITCHEN_HOOKS_ROOT/bin/kitchen_hooks" $@
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -e
|
3
|
+
|
4
|
+
project=kitchen_hooks
|
5
|
+
|
6
|
+
if ! hash bundle ; then
|
7
|
+
echo 'Could not run `bundle`, fixing that for you...'
|
8
|
+
gem install bundler || gem2.2 install bundler
|
9
|
+
fi
|
10
|
+
|
11
|
+
cd /opt/$project
|
12
|
+
bundle install --without development:test:spec --local --deployment
|
13
|
+
|
14
|
+
useradd --user-group --system -M --shell /bin/false $project || true
|
15
|
+
|
16
|
+
for d in /opt/$project /etc/$project /var/log/$project /var/data/$project ; do
|
17
|
+
mkdir -p $d
|
18
|
+
chown -R $project:$project $d
|
19
|
+
done
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -x
|
3
|
+
set -e
|
4
|
+
|
5
|
+
project="$(basename `pwd`)"
|
6
|
+
artifacts="${1:-tasks/package/artifacts}"
|
7
|
+
dockerfile="${2:-tasks/package/Dockerfile}"
|
8
|
+
task_name="${3:-$project-package-$(date +%s)}"
|
9
|
+
base_image="$(grep '^FROM' "$dockerfile" | awk '{ print $2 }')"
|
10
|
+
|
11
|
+
cleanup() {
|
12
|
+
docker stop "$task_name"
|
13
|
+
docker rm "$task_name"
|
14
|
+
docker rmi "$task_name"
|
15
|
+
}
|
16
|
+
|
17
|
+
trap cleanup EXIT
|
18
|
+
|
19
|
+
rm -rf "$artifacts"
|
20
|
+
docker pull "$base_image"
|
21
|
+
docker build -t "$task_name" -f "$dockerfile" .
|
22
|
+
docker run --name "$task_name" -dt "$task_name"
|
23
|
+
docker cp "$task_name":/artifacts "$artifacts"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
FROM sczizzo/trusty-tool:latest
|
2
|
+
MAINTAINER Sean Clemmer <sczizzo@gmail.com>
|
3
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
4
|
+
|
5
|
+
COPY . /build
|
6
|
+
|
7
|
+
RUN cd /build \
|
8
|
+
&& touch .docker \
|
9
|
+
&& bundle update \
|
10
|
+
&& bundle exec rake report \
|
11
|
+
&& mkdir -p /reports/test \
|
12
|
+
&& mv doc /reports \
|
13
|
+
&& mv coverage /reports \
|
14
|
+
&& mv test/reports/* /reports/test
|
15
|
+
|
16
|
+
VOLUME /reports
|
data/tasks/test/run.sh
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -x
|
3
|
+
set -e
|
4
|
+
|
5
|
+
project="$(basename `pwd`)"
|
6
|
+
reports="${1:-tasks/test/reports}"
|
7
|
+
dockerfile="${2:-tasks/test/Dockerfile}"
|
8
|
+
task_name="${3:-$project-test-$(date +%s)}"
|
9
|
+
base_image="$(grep '^FROM' "$dockerfile" | awk '{ print $2 }')"
|
10
|
+
|
11
|
+
cleanup() {
|
12
|
+
docker stop "$task_name"
|
13
|
+
docker rm "$task_name"
|
14
|
+
docker rmi "$task_name"
|
15
|
+
}
|
16
|
+
|
17
|
+
trap cleanup EXIT
|
18
|
+
|
19
|
+
rm -rf "$reports"
|
20
|
+
docker pull "$base_image"
|
21
|
+
docker build -t "$task_name" -f "$dockerfile" .
|
22
|
+
docker run --name "$task_name" -dt "$task_name"
|
23
|
+
docker cp "$task_name":/reports "$reports"
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
|
3
|
+
require_relative 'test_helper'
|
4
|
+
require_relative '../lib/kitchen_hooks'
|
5
|
+
|
6
|
+
Thread.abort_on_exception = true
|
7
|
+
|
8
|
+
|
9
|
+
class TestKitchenHooks < MiniTest::Test
|
10
|
+
def setup
|
11
|
+
end
|
12
|
+
|
13
|
+
def teardown
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_fails
|
17
|
+
assert false
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen_hooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Clemmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hipchat
|
@@ -219,6 +219,7 @@ files:
|
|
219
219
|
- Rakefile
|
220
220
|
- Readme.md
|
221
221
|
- VERSION
|
222
|
+
- Vagrantfile
|
222
223
|
- bin/kitchen_hooks
|
223
224
|
- etc/commit-constraint.json
|
224
225
|
- etc/commit-cookbook.json
|
@@ -231,6 +232,15 @@ files:
|
|
231
232
|
- lib/kitchen_hooks/helpers/sync_servers.rb
|
232
233
|
- lib/kitchen_hooks/main.rb
|
233
234
|
- lib/kitchen_hooks/metadata.rb
|
235
|
+
- tasks/package/Dockerfile
|
236
|
+
- tasks/package/_package.sh
|
237
|
+
- tasks/package/kitchen_hooks.sh
|
238
|
+
- tasks/package/post-install.sh
|
239
|
+
- tasks/package/run.sh
|
240
|
+
- tasks/test/Dockerfile
|
241
|
+
- tasks/test/run.sh
|
242
|
+
- test/test_helper.rb
|
243
|
+
- test/test_kitchen_hooks.rb
|
234
244
|
- web/app/kitchen_hooks.js
|
235
245
|
- web/app/style/kitchen_hooks.css
|
236
246
|
- web/public/favicon.ico
|
@@ -271,4 +281,6 @@ rubygems_version: 2.4.5.1
|
|
271
281
|
signing_key:
|
272
282
|
specification_version: 4
|
273
283
|
summary: GitLab WebHoook for automated Chef Server uploads
|
274
|
-
test_files:
|
284
|
+
test_files:
|
285
|
+
- test/test_helper.rb
|
286
|
+
- test/test_kitchen_hooks.rb
|