[deploy] update
This commit is contained in:
@@ -1,44 +1,27 @@
|
||||
require_relative 'service'
|
||||
require_relative 'npm'
|
||||
|
||||
app = 'tankz'
|
||||
user = 'holop'
|
||||
|
||||
set :scm, :git
|
||||
# git
|
||||
set :application, app
|
||||
set :repo_url, "git@bitbucket.org:shmyga/#{app}.git"
|
||||
set :user, user
|
||||
set :deploy_to, "/home/#{user}/repo/#{app}"
|
||||
|
||||
# airbrussh
|
||||
set :format, :airbrussh
|
||||
set :format_options, command_output: false
|
||||
|
||||
namespace :build do
|
||||
task :lib do
|
||||
on roles(:app) do
|
||||
execute "mkdir ~/haxelib 2>/dev/null || :"
|
||||
execute "haxelib setup ~/haxelib"
|
||||
execute "haxelib install lime"
|
||||
execute "haxelib install openfl"
|
||||
execute "haxelib install protohx"
|
||||
execute "haxelib install orm"
|
||||
execute "haxelib git haxework git@bitbucket.org:shmyga/haxework.git"
|
||||
end
|
||||
end
|
||||
# npm
|
||||
set :npm_target_path, -> { "/home/#{fetch(:user)}/npm" }
|
||||
set :npm_flags, '--silent --no-spin'
|
||||
set :npm_roles, :web
|
||||
set :npm_env_variables, {}
|
||||
|
||||
task :gen do
|
||||
on roles(:app) do
|
||||
execute "cd #{release_path} && haxelib run protohx generate protohx.json"
|
||||
execute "cd #{release_path} && haxelib run orm mysql://shmyga:xkbp8jh9z2@localhost:3306/armageddon -s src-gen/haxe -c ru.m.tankz.db -a ru.m.tankz.db"
|
||||
end
|
||||
end
|
||||
|
||||
task :run do
|
||||
on roles(:app) do
|
||||
execute "cd #{release_path} && openfl build html5"
|
||||
execute "cd #{release_path} && openfl build flash"
|
||||
execute "cd #{release_path} && haxe server.hxml"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# before 'build:run', 'build:lib'
|
||||
# before 'build:run', 'build:gen'
|
||||
# before 'deploy:updated', 'build:run'
|
||||
# gulp
|
||||
set :gulp_target_path, -> { release_path }
|
||||
set :gulp_tasks, 'client'
|
||||
set :gulp_flags, '--no-color'
|
||||
set :gulp_roles, :web
|
||||
# before 'deploy:updated', 'gulp'
|
||||
|
||||
@@ -2,6 +2,7 @@ role :app, %w{localhost}
|
||||
role :web, %w{localhost}
|
||||
role :db, %w{localhost}
|
||||
|
||||
set :user, ENV['USER']
|
||||
user = fetch(:user)
|
||||
|
||||
server 'localhost', ssh_options: { port: 22, user: user, forward_agent: true }
|
||||
|
||||
22
config/npm.rb
Normal file
22
config/npm.rb
Normal file
@@ -0,0 +1,22 @@
|
||||
set :npm_path, -> { release_path }
|
||||
|
||||
namespace :npm do
|
||||
task :prepare do
|
||||
on roles(:all) do
|
||||
npm_target_path = fetch(:npm_target_path)
|
||||
npm_path = fetch(:npm_path)
|
||||
execute "mkdir -p #{npm_target_path}"
|
||||
execute "cp #{npm_path}/package.json #{npm_target_path}"
|
||||
end
|
||||
end
|
||||
task :link do
|
||||
on roles(:all) do
|
||||
npm_target_path = fetch(:npm_target_path)
|
||||
npm_path = fetch(:npm_path)
|
||||
execute "ln -s #{npm_target_path}/node_modules #{npm_path}/"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
before 'npm:install', 'npm:prepare'
|
||||
after 'npm:install', 'npm:link'
|
||||
@@ -1,52 +0,0 @@
|
||||
module Service
|
||||
class Manager
|
||||
def initialize(env)
|
||||
@env = env
|
||||
end
|
||||
|
||||
def execute(action, command)
|
||||
Airbrussh.configure do |config|
|
||||
config.command_output = true
|
||||
end
|
||||
service_role = "service_role_#{action}".to_sym
|
||||
role = fetch(service_role)
|
||||
on roles(role) do
|
||||
execute :sudo, "/bin/systemctl #{command} #{action}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
services = %w{tankz}
|
||||
|
||||
namespace :service do
|
||||
task :restart, :param do |task, args|
|
||||
services = args[:param] ? [args[:param]] : services
|
||||
services.each { |service|
|
||||
Service::Manager.new(self).execute(service, 'restart')
|
||||
}
|
||||
end
|
||||
|
||||
task :stop, :param do |task, args|
|
||||
services = args[:param] ? [args[:param]] : services
|
||||
services.each { |service|
|
||||
Service::Manager.new(self).execute(service, 'stop')
|
||||
}
|
||||
end
|
||||
|
||||
task :start, :param do |task, args|
|
||||
services = args[:param] ? [args[:param]] : services
|
||||
services.each { |service|
|
||||
Service::Manager.new(self).execute(service, 'start')
|
||||
}
|
||||
end
|
||||
|
||||
task :status, :param do |task, args|
|
||||
services = args[:param] ? [args[:param]] : services
|
||||
services.each { |service|
|
||||
Service::Manager.new(self).execute(service, 'status')
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
set :service_role_tankz, :app
|
||||
Reference in New Issue
Block a user