kitchen_hooks 1.8.5 → 1.8.6
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/.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
|