mina-faye 0.1.0
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 +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +20 -0
- data/Rakefile +9 -0
- data/lib/mina_faye.rb +4 -0
- data/lib/mina_faye/tasks.rb +43 -0
- data/lib/mina_faye/version.rb +5 -0
- data/mina-faye.gemspec +20 -0
- data/test/deploy_test.rb +53 -0
- data/test/test_helper.rb +63 -0
- data/test_env/config/deploy.rb +48 -0
- metadata +70 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6b2df924bb9672a48105571b4a08f73c39e73df5
|
4
|
+
data.tar.gz: d05ee41f6dc29a083fcb83d77c890973ad17e884
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0d408d9527593a56eb3b35b16be00e95044f6f3e6d3abd9b55c03b029a66e5d7219ee7b7b16bc2be45590f09dc3e3219110008553184cba6fd9f3f8183629eef
|
7
|
+
data.tar.gz: c7469db5129b9df97acb9aa46b10978c6de82ce24488aa15a47e3124291a26de8242b6c1383f3a9e6a98bb19ab2b3e56871370049d599fdaedefbdc514995b00
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
mina-fyae
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.2
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
data/Rakefile
ADDED
data/lib/mina_faye.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
require 'mina/bundler'
|
3
|
+
require 'mina/rails'
|
4
|
+
|
5
|
+
# ## Settings
|
6
|
+
|
7
|
+
# ### Faye
|
8
|
+
|
9
|
+
# Sets the path to faye config file
|
10
|
+
set_default :faye_config, lambda { "faye.ru" }
|
11
|
+
|
12
|
+
# Sets the path to the pid file of a faye
|
13
|
+
set_default :faye_pid, lambda { "#{deploy_to}/#{shared_path}/pids/faye.pid" }
|
14
|
+
|
15
|
+
namespace :faye do
|
16
|
+
desc "Stop Faye"
|
17
|
+
task :stop => :environment do
|
18
|
+
queue %[echo "-----> Stop Faye"]
|
19
|
+
queue %[
|
20
|
+
if [ -f #{faye_pid} ] && kill -KILL $(cat #{faye_pid})> /dev/null 2>&1; then
|
21
|
+
cd "#{deploy_to}/#{current_path}"
|
22
|
+
echo 'Faye stop'
|
23
|
+
else
|
24
|
+
echo 'Skip stopping faye (no pid file found)'
|
25
|
+
fi
|
26
|
+
]
|
27
|
+
end
|
28
|
+
desc "Start Faye"
|
29
|
+
task :start => :environment do
|
30
|
+
queue %[echo "-----> Start Faye"]
|
31
|
+
queue %{
|
32
|
+
echo "Faye starting in #{rails_env}"
|
33
|
+
cd "#{deploy_to}/#{current_path}"
|
34
|
+
#{echo_cmd %[nohup rackup #{faye_config} -d -E #{rails_env} -p 9292 -P #{faye_pid} --daemonize ] }
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
desc "Restart Faye"
|
39
|
+
task :restart do
|
40
|
+
invoke :'faye:stop'
|
41
|
+
invoke :'faye:start'
|
42
|
+
end
|
43
|
+
end
|
data/mina-faye.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require "./lib/mina_faye/version.rb"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "mina-faye"
|
7
|
+
s.version = MinaFaye.version
|
8
|
+
s.authors = ["Kostyantin Semchenko"]
|
9
|
+
s.email = ["Ningen.UA@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/NingenUA/mina-faye"
|
11
|
+
s.summary = "Tasks to deploy Faye with mina."
|
12
|
+
s.description = "Adds tasks to aid in the deployment of Faye"
|
13
|
+
s.license = "MIT"
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
s.add_runtime_dependency "mina"
|
20
|
+
end
|
data/test/deploy_test.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "mina_faye" do
|
4
|
+
before do
|
5
|
+
@old_cwd = Dir.pwd
|
6
|
+
@env_root = TEST_ROOT.join("..", "test_env")
|
7
|
+
Dir.chdir(@env_root)
|
8
|
+
FileUtils.rm_rf("deploy")
|
9
|
+
end
|
10
|
+
after { Dir.chdir(@old_cwd) }
|
11
|
+
|
12
|
+
def mina(task)
|
13
|
+
cmd = "bundle exec mina --verbose #{task}"
|
14
|
+
puts "$ #{cmd}"
|
15
|
+
system cmd
|
16
|
+
end
|
17
|
+
|
18
|
+
def check_process(pid)
|
19
|
+
begin
|
20
|
+
Process.kill(0, pid)
|
21
|
+
return true
|
22
|
+
rescue Errno::EPERM => e
|
23
|
+
puts "No permission to query #{pid}!"
|
24
|
+
raise e
|
25
|
+
rescue Errno::ESRCH
|
26
|
+
puts "#{pid} is NOT running."
|
27
|
+
return false
|
28
|
+
rescue
|
29
|
+
puts "Unable to determine status for #{pid} : #{$!}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "setup" do
|
34
|
+
before(:all) { mina "setup" }
|
35
|
+
|
36
|
+
it "should deploy" do
|
37
|
+
begin
|
38
|
+
# fresh deploy
|
39
|
+
mina "deploy"
|
40
|
+
# second deploy
|
41
|
+
mina "deploy"
|
42
|
+
rescue Exception => e
|
43
|
+
log = "./deploy/shared/faye.log"
|
44
|
+
if File.exists?(log)
|
45
|
+
puts "cat #{log}"
|
46
|
+
puts File.open(log).read
|
47
|
+
end
|
48
|
+
raise e
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require "minitest/spec"
|
2
|
+
require "minitest/autorun"
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
TEST_ROOT = Pathname.new(File.dirname(__FILE__))
|
6
|
+
|
7
|
+
module MiniTestWithHooks
|
8
|
+
class Unit < MiniTest::Unit
|
9
|
+
def before_suites; end
|
10
|
+
def after_suites; end
|
11
|
+
|
12
|
+
def _run_suites(suites, type)
|
13
|
+
begin
|
14
|
+
before_suites
|
15
|
+
super(suites, type)
|
16
|
+
ensure
|
17
|
+
after_suites
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def _run_suite(suite, type)
|
22
|
+
begin
|
23
|
+
suite.before_suite
|
24
|
+
super(suite, type)
|
25
|
+
ensure
|
26
|
+
suite.after_suite
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module MiniTestWithTransactions
|
33
|
+
class Unit < MiniTestWithHooks::Unit
|
34
|
+
def before_suites
|
35
|
+
super
|
36
|
+
if ENV["FORCE_ADD_SSH_KEY"]
|
37
|
+
force_add_ssh_key
|
38
|
+
end
|
39
|
+
end
|
40
|
+
def force_add_ssh_key(&block)
|
41
|
+
ssh_key = File.expand_path("~/.ssh/id_rsa.pub")
|
42
|
+
unless File.exists?(ssh_key)
|
43
|
+
sh "ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa"
|
44
|
+
end
|
45
|
+
file = File.open(ssh_key)
|
46
|
+
pub_key = file.readline
|
47
|
+
file.close
|
48
|
+
|
49
|
+
authorized_keys = File.expand_path("~/.ssh/authorized_keys")
|
50
|
+
begin
|
51
|
+
File.open(authorized_keys, "a+") do |f|
|
52
|
+
File.chmod(0600, authorized_keys)
|
53
|
+
f.puts(pub_key)
|
54
|
+
end
|
55
|
+
rescue Exception => e
|
56
|
+
puts e.message
|
57
|
+
puts e.backtrace.inspect
|
58
|
+
ensure
|
59
|
+
File.chmod(0400, authorized_keys)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'mina'
|
2
|
+
require 'mina/git'
|
3
|
+
require 'mina_faye/tasks'
|
4
|
+
require 'mina/git'
|
5
|
+
require 'mina/bundler'
|
6
|
+
require 'mina/rvm'
|
7
|
+
require 'fileutils'
|
8
|
+
|
9
|
+
|
10
|
+
FileUtils.mkdir_p "#{Dir.pwd}/deploy"
|
11
|
+
|
12
|
+
set :ssh_options, '-o StrictHostKeyChecking=no'
|
13
|
+
|
14
|
+
set :domain, 'localhost'
|
15
|
+
set :deploy_to, "#{Dir.pwd}/deploy"
|
16
|
+
set :repository, 'https://github.com/NingenUA/mina_faye_rails_test.git'
|
17
|
+
set :keep_releases, 2
|
18
|
+
set :sidekiq_processes, 2
|
19
|
+
|
20
|
+
set :shared_paths, ['log']
|
21
|
+
set :term_mode, nil
|
22
|
+
|
23
|
+
task :environment do
|
24
|
+
invoke :'rvm:use[ruby-2.1.2]'
|
25
|
+
end
|
26
|
+
|
27
|
+
task setup: :environment do
|
28
|
+
queue! %[mkdir -p "#{deploy_to}/shared/pids/"]
|
29
|
+
queue! %[mkdir -p "#{deploy_to}/shared/log/"]
|
30
|
+
end
|
31
|
+
|
32
|
+
task deploy: :environment do
|
33
|
+
deploy do
|
34
|
+
invoke :'git:clone'
|
35
|
+
invoke :'deploy:link_shared_paths'
|
36
|
+
invoke :'bundle:install'
|
37
|
+
|
38
|
+
to :launch do
|
39
|
+
invoke :'faye:start'
|
40
|
+
queue! %[sleep 3; kill -0 `cat #{faye_pid}`]
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
invoke :'faye:stop'
|
45
|
+
queue! %[(kill -0 `cat #{faye_pid}`) 2> /dev/null && exit 1 || exit 0]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mina-faye
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kostyantin Semchenko
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-07-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: mina
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Adds tasks to aid in the deployment of Faye
|
28
|
+
email:
|
29
|
+
- Ningen.UA@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- ".ruby-gemset"
|
35
|
+
- ".ruby-version"
|
36
|
+
- Gemfile
|
37
|
+
- Gemfile.lock
|
38
|
+
- Rakefile
|
39
|
+
- lib/mina_faye.rb
|
40
|
+
- lib/mina_faye/tasks.rb
|
41
|
+
- lib/mina_faye/version.rb
|
42
|
+
- mina-faye.gemspec
|
43
|
+
- test/deploy_test.rb
|
44
|
+
- test/test_helper.rb
|
45
|
+
- test_env/config/deploy.rb
|
46
|
+
homepage: https://github.com/NingenUA/mina-faye
|
47
|
+
licenses:
|
48
|
+
- MIT
|
49
|
+
metadata: {}
|
50
|
+
post_install_message:
|
51
|
+
rdoc_options: []
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
requirements: []
|
65
|
+
rubyforge_project:
|
66
|
+
rubygems_version: 2.2.2
|
67
|
+
signing_key:
|
68
|
+
specification_version: 4
|
69
|
+
summary: Tasks to deploy Faye with mina.
|
70
|
+
test_files: []
|