itamae-plugin-recipe-git_now 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github_changelog_generator +1 -0
- data/.gitignore +1 -0
- data/.rspec +3 -0
- data/README.md +12 -0
- data/Rakefile +28 -0
- data/Vagrantfile +105 -0
- data/ci/build.sh +8 -0
- data/ci/destroy_old_droplets.rb +22 -0
- data/itamae-plugin-recipe-git_now.gemspec +1 -0
- data/lib/itamae/plugin/recipe/git_now/default.rb +1 -0
- data/lib/itamae/plugin/recipe/git_now/version.rb +1 -1
- data/recipes/install.rb +1 -0
- data/recipes/node.yml +3 -0
- data/wercker.yml +84 -0
- metadata +25 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37d75c3d292c2184437850786a85c011865af8cc
|
4
|
+
data.tar.gz: 8500231c235f592f34134d09e5ec6b68a1d334f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b368a0aff71f2a7e8549dd7f73a9f5e8c4bb215befbaa3ab9e231d594dc24446f5a0009a6cf47906376a57de094305e91b5b9d08fac9d24fc48c1e5cd68b6d4a
|
7
|
+
data.tar.gz: 956fb64034584f61a4b3a38263997f365c80109e58a542a032483de0a46abb67ad93278cbb5e2cd6b618105ca3b6bd37c28dbae1b23c3a7094151b7238897f98
|
@@ -0,0 +1 @@
|
|
1
|
+
date-format=%Y/%m/%d
|
data/.gitignore
CHANGED
data/.rspec
ADDED
data/README.md
CHANGED
@@ -2,8 +2,11 @@
|
|
2
2
|
|
3
3
|
[Itamae](https://github.com/itamae-kitchen/itamae) plugin to install [git-now](https://github.com/iwata/git-now)
|
4
4
|
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/itamae-plugin-recipe-git_now.svg)](https://badge.fury.io/rb/itamae-plugin-recipe-git_now)
|
5
6
|
[![Dependency Status](https://gemnasium.com/sue445/itamae-plugin-recipe-git_now.svg)](https://gemnasium.com/sue445/itamae-plugin-recipe-git_now)
|
6
7
|
|
8
|
+
[![wercker status](https://app.wercker.com/status/48a0737824a0f6c97b62ae3ba89a6446/m/master "wercker status")](https://app.wercker.com/project/bykey/48a0737824a0f6c97b62ae3ba89a6446)
|
9
|
+
|
7
10
|
## Installation
|
8
11
|
|
9
12
|
Add this line to your application's Gemfile:
|
@@ -56,6 +59,15 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
56
59
|
|
57
60
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
58
61
|
|
62
|
+
## Testing
|
63
|
+
requirements [Vagrant](https://www.vagrantup.com/)
|
64
|
+
|
65
|
+
```sh
|
66
|
+
vagrant up centos70
|
67
|
+
bundle exec rake itamae:centos70
|
68
|
+
bundle exec rake spec:centos70
|
69
|
+
```
|
70
|
+
|
59
71
|
## Contributing
|
60
72
|
|
61
73
|
Bug reports and pull requests are welcome on GitHub at https://github.com/sue445/itamae-plugin-recipe-git_now.
|
data/Rakefile
CHANGED
@@ -1 +1,29 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
+
require "rspec/core/rake_task"
|
3
|
+
|
4
|
+
task :spec => "spec:all"
|
5
|
+
|
6
|
+
HOSTS = %w(centos70 debian8)
|
7
|
+
|
8
|
+
namespace :spec do
|
9
|
+
task :all => HOSTS
|
10
|
+
|
11
|
+
HOSTS.each do |host|
|
12
|
+
RSpec::Core::RakeTask.new(host.to_sym) do |t|
|
13
|
+
puts "Running tests to #{host} ..."
|
14
|
+
ENV["TARGET_HOST"] = host
|
15
|
+
t.pattern = "spec/*_spec.rb"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
namespace :itamae do
|
21
|
+
task :all => HOSTS
|
22
|
+
|
23
|
+
HOSTS.each do |host|
|
24
|
+
desc "Running itamae to #{host}"
|
25
|
+
task host do
|
26
|
+
sh "bundle exec itamae ssh --host=#{host} --vagrant --node-yaml=recipes/node.yml recipes/install.rb"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/Vagrantfile
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby :
|
3
|
+
|
4
|
+
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
5
|
+
# configures the configuration version (we support older styles for
|
6
|
+
# backwards compatibility). Please don't change it unless you know what
|
7
|
+
# you're doing.
|
8
|
+
Vagrant.configure(2) do |config|
|
9
|
+
config.vm.provider :digital_ocean do |provider, override|
|
10
|
+
override.vm.box = "digital_ocean"
|
11
|
+
override.vm.box_url = "https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box"
|
12
|
+
provider.token = ENV["DIGITALOCEAN_ACCESS_TOKEN"]
|
13
|
+
provider.region = "nyc1"
|
14
|
+
provider.size = "512MB"
|
15
|
+
|
16
|
+
if ENV["WERCKER"] == "true"
|
17
|
+
provider.ssh_key_name = "wercker-#{ENV['WERCKER_GIT_REPOSITORY']}"
|
18
|
+
override.ssh.private_key_path = "~/.ssh/id_rsa.vagrant"
|
19
|
+
else
|
20
|
+
provider.ssh_key_name = "local"
|
21
|
+
override.ssh.private_key_path = "~/.ssh/id_rsa"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
config.vm.define :centos70 do |c|
|
26
|
+
c.vm.box = "centos/7"
|
27
|
+
c.vm.provider :digital_ocean do |provider, override|
|
28
|
+
provider.image = "centos-7-0-x64"
|
29
|
+
end
|
30
|
+
c.vm.hostname = 'itamae-centos70'
|
31
|
+
c.vm.hostname += "-#{ENV['WERCKER_BUILD_ID']}" if ENV['WERCKER_BUILD_ID']
|
32
|
+
end
|
33
|
+
|
34
|
+
config.vm.define :debian8 do |c|
|
35
|
+
c.vm.box = "debian/jessie64"
|
36
|
+
c.vm.provider :digital_ocean do |provider, override|
|
37
|
+
provider.image = "debian-8-x64"
|
38
|
+
end
|
39
|
+
c.vm.hostname = 'itamae-debian8'
|
40
|
+
c.vm.hostname += "-#{ENV['WERCKER_BUILD_ID']}" if ENV['WERCKER_BUILD_ID']
|
41
|
+
end
|
42
|
+
|
43
|
+
# The most common configuration options are documented and commented below.
|
44
|
+
# For a complete reference, please see the online documentation at
|
45
|
+
# https://docs.vagrantup.com.
|
46
|
+
|
47
|
+
# Every Vagrant development environment requires a box. You can search for
|
48
|
+
# boxes at https://atlas.hashicorp.com/search.
|
49
|
+
# config.vm.box = "base"
|
50
|
+
|
51
|
+
# Disable automatic box update checking. If you disable this, then
|
52
|
+
# boxes will only be checked for updates when the user runs
|
53
|
+
# `vagrant box outdated`. This is not recommended.
|
54
|
+
# config.vm.box_check_update = false
|
55
|
+
|
56
|
+
# Create a forwarded port mapping which allows access to a specific port
|
57
|
+
# within the machine from a port on the host machine. In the example below,
|
58
|
+
# accessing "localhost:8080" will access port 80 on the guest machine.
|
59
|
+
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
60
|
+
|
61
|
+
# Create a private network, which allows host-only access to the machine
|
62
|
+
# using a specific IP.
|
63
|
+
# config.vm.network "private_network", ip: "192.168.33.10"
|
64
|
+
|
65
|
+
# Create a public network, which generally matched to bridged network.
|
66
|
+
# Bridged networks make the machine appear as another physical device on
|
67
|
+
# your network.
|
68
|
+
# config.vm.network "public_network"
|
69
|
+
|
70
|
+
# Share an additional folder to the guest VM. The first argument is
|
71
|
+
# the path on the host to the actual folder. The second argument is
|
72
|
+
# the path on the guest to mount the folder. And the optional third
|
73
|
+
# argument is a set of non-required options.
|
74
|
+
# config.vm.synced_folder "../data", "/vagrant_data"
|
75
|
+
|
76
|
+
# Provider-specific configuration so you can fine-tune various
|
77
|
+
# backing providers for Vagrant. These expose provider-specific options.
|
78
|
+
# Example for VirtualBox:
|
79
|
+
#
|
80
|
+
# config.vm.provider "virtualbox" do |vb|
|
81
|
+
# # Display the VirtualBox GUI when booting the machine
|
82
|
+
# vb.gui = true
|
83
|
+
#
|
84
|
+
# # Customize the amount of memory on the VM:
|
85
|
+
# vb.memory = "1024"
|
86
|
+
# end
|
87
|
+
#
|
88
|
+
# View the documentation for the provider you are using for more
|
89
|
+
# information on available options.
|
90
|
+
|
91
|
+
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
|
92
|
+
# such as FTP and Heroku are also available. See the documentation at
|
93
|
+
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
|
94
|
+
# config.push.define "atlas" do |push|
|
95
|
+
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
|
96
|
+
# end
|
97
|
+
|
98
|
+
# Enable provisioning with a shell script. Additional provisioners such as
|
99
|
+
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
|
100
|
+
# documentation for more information about their specific syntax and use.
|
101
|
+
# config.vm.provision "shell", inline: <<-SHELL
|
102
|
+
# sudo apt-get update
|
103
|
+
# sudo apt-get install -y apache2
|
104
|
+
# SHELL
|
105
|
+
end
|
data/ci/build.sh
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# via. https://github.com/itamae-kitchen/itamae/blob/v1.9.3/ci/destroy_old_droplets.rb
|
2
|
+
require 'net/https'
|
3
|
+
require 'json'
|
4
|
+
require 'time'
|
5
|
+
|
6
|
+
http = Net::HTTP.new("api.digitalocean.com", 443)
|
7
|
+
http.use_ssl = true
|
8
|
+
|
9
|
+
res = http.start do
|
10
|
+
http.get("/v2/droplets", "Authorization" => "Bearer #{ENV['DIGITALOCEAN_ACCESS_TOKEN']}")
|
11
|
+
end
|
12
|
+
|
13
|
+
droplets = JSON.parse(res.body)['droplets']
|
14
|
+
droplets.each do |droplet|
|
15
|
+
next unless /^itamae-/ =~ droplet['name']
|
16
|
+
if Time.now - Time.parse(droplet['created_at']) >= 60 * 60
|
17
|
+
puts "destroying #{droplet}..."
|
18
|
+
res = http.start do
|
19
|
+
http.delete("/v2/droplets/#{droplet['id']}", "Authorization" => "Bearer #{ENV['DIGITALOCEAN_ACCESS_TOKEN']}")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/recipes/install.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
include_recipe "git_now"
|
data/recipes/node.yml
ADDED
data/wercker.yml
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# This references the default Ruby container from
|
2
|
+
# the Docker Hub.
|
3
|
+
# https://registry.hub.docker.com/_/ruby/
|
4
|
+
# If you want to use a specific version you would use a tag:
|
5
|
+
# ruby:2.2.2
|
6
|
+
box: sue445/rvm-vagrant-digitalocean@1.0.0
|
7
|
+
# You can also use services such as databases. Read more on our dev center:
|
8
|
+
# http://devcenter.wercker.com/docs/services/index.html
|
9
|
+
# services:
|
10
|
+
# - postgres
|
11
|
+
# http://devcenter.wercker.com/docs/services/postgresql.html
|
12
|
+
|
13
|
+
# - mongodb
|
14
|
+
# http://devcenter.wercker.com/docs/services/mongodb.html
|
15
|
+
|
16
|
+
# This is the build pipeline. Pipelines are the core of wercker
|
17
|
+
# Read more about pipelines on our dev center
|
18
|
+
# http://devcenter.wercker.com/docs/pipelines/index.html
|
19
|
+
build:
|
20
|
+
# Steps make up the actions in your pipeline
|
21
|
+
# Read more about steps on our dev center:
|
22
|
+
# http://devcenter.wercker.com/docs/steps/index.html
|
23
|
+
steps:
|
24
|
+
- rvm-use:
|
25
|
+
version: 2.3.0
|
26
|
+
|
27
|
+
- script:
|
28
|
+
name: install bundler
|
29
|
+
code: gem install bundler -v 1.10.6
|
30
|
+
|
31
|
+
- bundle-install:
|
32
|
+
jobs: 4
|
33
|
+
|
34
|
+
- script:
|
35
|
+
name: echo ruby information
|
36
|
+
code: |
|
37
|
+
echo "ruby version $(ruby --version) running"
|
38
|
+
echo "from location $(which ruby)"
|
39
|
+
echo -p "gem list: $(gem list)"
|
40
|
+
|
41
|
+
- script:
|
42
|
+
name: create .ssh directory
|
43
|
+
code: mkdir -p $HOME/.ssh
|
44
|
+
|
45
|
+
- create-file:
|
46
|
+
name: put private key
|
47
|
+
filename: $HOME/.ssh/id_rsa.vagrant
|
48
|
+
overwrite: true
|
49
|
+
hide-from-log: true
|
50
|
+
content: $DIGITALOCEAN_KEY_PRIVATE
|
51
|
+
|
52
|
+
- create-file:
|
53
|
+
name: put public key
|
54
|
+
filename: $HOME/.ssh/id_rsa.vagrant.pub
|
55
|
+
overwrite: true
|
56
|
+
hide-from-log: true
|
57
|
+
content: $DIGITALOCEAN_KEY_PUBLIC
|
58
|
+
|
59
|
+
- script:
|
60
|
+
name: chmod 600 id_rsa
|
61
|
+
code: chmod 600 $HOME/.ssh/id_rsa.vagrant
|
62
|
+
|
63
|
+
- script:
|
64
|
+
name: test centos70
|
65
|
+
code: ./ci/build.sh centos70
|
66
|
+
|
67
|
+
- script:
|
68
|
+
name: test debian8
|
69
|
+
code: ./ci/build.sh debian8
|
70
|
+
|
71
|
+
after-steps:
|
72
|
+
- script:
|
73
|
+
name: shutdown all vms
|
74
|
+
code: |
|
75
|
+
vagrant destroy -f centos70
|
76
|
+
vagrant destroy -f debian8
|
77
|
+
|
78
|
+
- script:
|
79
|
+
name: shutdown old vms
|
80
|
+
code: bundle exec ruby ci/destroy_old_droplets.rb
|
81
|
+
|
82
|
+
- wantedly/pretty-slack-notify:
|
83
|
+
webhook_url: $SLACK_WEBHOOK_URL
|
84
|
+
username: wercker_build
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itamae-plugin-recipe-git_now
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sue445
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: itamae
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: serverspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: Itamae plugin to install git-now
|
56
70
|
email:
|
57
71
|
- sue445@sue445.net
|
@@ -59,17 +73,25 @@ executables: []
|
|
59
73
|
extensions: []
|
60
74
|
extra_rdoc_files: []
|
61
75
|
files:
|
76
|
+
- ".github_changelog_generator"
|
62
77
|
- ".gitignore"
|
78
|
+
- ".rspec"
|
63
79
|
- Gemfile
|
64
80
|
- LICENSE.txt
|
65
81
|
- README.md
|
66
82
|
- Rakefile
|
83
|
+
- Vagrantfile
|
67
84
|
- bin/console
|
68
85
|
- bin/setup
|
86
|
+
- ci/build.sh
|
87
|
+
- ci/destroy_old_droplets.rb
|
69
88
|
- itamae-plugin-recipe-git_now.gemspec
|
70
89
|
- lib/itamae/plugin/recipe/git_now.rb
|
71
90
|
- lib/itamae/plugin/recipe/git_now/default.rb
|
72
91
|
- lib/itamae/plugin/recipe/git_now/version.rb
|
92
|
+
- recipes/install.rb
|
93
|
+
- recipes/node.yml
|
94
|
+
- wercker.yml
|
73
95
|
homepage: https://github.com/sue445/itamae-plugin-recipe-git_now
|
74
96
|
licenses:
|
75
97
|
- MIT
|
@@ -90,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
112
|
version: '0'
|
91
113
|
requirements: []
|
92
114
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.
|
115
|
+
rubygems_version: 2.5.1
|
94
116
|
signing_key:
|
95
117
|
specification_version: 4
|
96
118
|
summary: Itamae plugin to install git-now
|