itamae-plugin-recipe-git_now 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7af7425df7b9f11991f3d0f27a6694d5d524dd6f
4
- data.tar.gz: c1ce0b835dfe2860017778504c6e54bb753ea79f
3
+ metadata.gz: 37d75c3d292c2184437850786a85c011865af8cc
4
+ data.tar.gz: 8500231c235f592f34134d09e5ec6b68a1d334f8
5
5
  SHA512:
6
- metadata.gz: 7d9a9381761a46e35359087d95519f9fd2d550748d7042d3ca937dae32dcd1bf24453cdced75d0e2fa734cdeab8ced328c45d21e493b5d1450bed0c1432559ce
7
- data.tar.gz: 3a694613645b1d16f7af6969e42a46c0ae4fa129a6aac4ce1a53e927f7c6d5342448f8db786d044bcdee1c38510a75adb54928de391157165e1eca728946633f
6
+ metadata.gz: b368a0aff71f2a7e8549dd7f73a9f5e8c4bb215befbaa3ab9e231d594dc24446f5a0009a6cf47906376a57de094305e91b5b9d08fac9d24fc48c1e5cd68b6d4a
7
+ data.tar.gz: 956fb64034584f61a4b3a38263997f365c80109e58a542a032483de0a46abb67ad93278cbb5e2cd6b618105ca3b6bd37c28dbae1b23c3a7094151b7238897f98
@@ -0,0 +1 @@
1
+ date-format=%Y/%m/%d
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ .vagrant/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
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
@@ -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
@@ -0,0 +1,8 @@
1
+ #!/bin/bash -xe
2
+
3
+ readonly HOST=$1
4
+
5
+ vagrant up $HOST --provider=digital_ocean
6
+ bundle exec rake itamae:$HOST
7
+ bundle exec rake spec:$HOST
8
+ vagrant destroy -f $HOST
@@ -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
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.10"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "serverspec"
26
27
  end
@@ -8,6 +8,7 @@ node.reverse_merge!(
8
8
  node[:git_now][:src] ||= "#{node[:git_now][:prefix]}/src"
9
9
 
10
10
  package "git"
11
+ package "make"
11
12
 
12
13
  install_dir = "#{node[:git_now][:src]}/git-now"
13
14
 
@@ -2,7 +2,7 @@ module Itamae
2
2
  module Plugin
3
3
  module Recipe
4
4
  module GitNow
5
- VERSION = "0.1.0"
5
+ VERSION = "0.1.1"
6
6
  end
7
7
  end
8
8
  end
@@ -0,0 +1 @@
1
+ include_recipe "git_now"
@@ -0,0 +1,3 @@
1
+ git_now:
2
+ prefix: /usr/local
3
+ revision: v0.1.1.0
@@ -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.0
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: 2015-12-17 00:00:00.000000000 Z
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.4.5.1
115
+ rubygems_version: 2.5.1
94
116
  signing_key:
95
117
  specification_version: 4
96
118
  summary: Itamae plugin to install git-now