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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b0ac3ae55aa7859adfdc6be8f29a6c417158c96
4
- data.tar.gz: bf85a50a43051952e62cd1d3fb4d4ddabeb734b6
3
+ metadata.gz: 3d67d86082ea4febb73e0ad4aaed12aedb0f65d9
4
+ data.tar.gz: 22a9ea6b945b504861da5f7cd8a46a9c253b6165
5
5
  SHA512:
6
- metadata.gz: dfc2412306dea44afb63c7e5f46d9da747df1dda322d7e71e4078a0d696a34531b7a44a6239988eac1669d5d3f774834cc7d145bc8bb76353e3d496925fb1ebf
7
- data.tar.gz: 54b6287f4a956149db97ab804d0513fb52cde1b49c75ef78575697550ef83b70b4448e18871fc8f9330946ef6fb49b84c18f8cff166b9ed7893a7d01800d33a0
6
+ metadata.gz: 91ffbb5eae7d78774041e0e026ab32a712b8f88f9c4e77af7ee703f574912588b233aefbbbfa77393d736e07260bafdb8a6d042e8e0dbc33c98f0b81ba2b64ca
7
+ data.tar.gz: cc824c2924c0cc38b03f88c025981d3ce3c21bdf450d7d50a049a31470b86ef9d2b9322d1e37459ab50b7942e080cc218f23e0d5cc6f3f9042d1c34fcf8e9f9d
data/.gitignore CHANGED
@@ -14,4 +14,9 @@
14
14
  doc
15
15
  pkg
16
16
  tmp
17
- Gemfile.lock
17
+ Gemfile.lock
18
+ .vagrant
19
+ vendor
20
+ artifacts
21
+ reports
22
+ coverage
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 :default => :test
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.5
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "before": "08f20548e398f634979047d0c8114260bcc2949a",
3
3
  "after": "0835e7c74314cfe2aa9f98fe47338031b637ef95",
4
- "ref": "refs/tags/bjn_catalyst_pilot",
4
+ "ref": "refs/tags/bjn_catalyst_bogus",
5
5
  "user_id": 645,
6
6
  "user_name": "Sean Clemmer",
7
7
  "repository": {
@@ -1,6 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path(File.join('..', 'lib'), __FILE__)
3
3
  require 'kitchen_hooks/metadata'
4
+ require 'find'
4
5
 
5
6
  Gem::Specification.new do |s|
6
7
  s.name = 'kitchen_hooks'
@@ -45,8 +45,8 @@ private
45
45
  end
46
46
 
47
47
  nodes.map do |n|
48
- c = clients.select { |c| c.name == n.name }.shift
49
- @clients[n.name] = c unless c.nil?
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 /^(app|base|realm|fork)_/, 'bjn_'
465
+ repo_name(event).sub(/^(app|base|realm|fork)_/, 'bjn_')
455
466
  end
456
467
 
457
468
 
@@ -0,0 +1,9 @@
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 && /build/tasks/package/_package.sh /artifacts
8
+
9
+ VOLUME /artifacts
@@ -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"
@@ -0,0 +1,7 @@
1
+ require 'simplecov'
2
+ require 'simplecov-cobertura'
3
+ SimpleCov.formatters = [
4
+ SimpleCov::Formatter::HTMLFormatter,
5
+ SimpleCov::Formatter::CoberturaFormatter
6
+ ]
7
+ SimpleCov.start
@@ -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.5
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-10 00:00:00.000000000 Z
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