Automated builds and deploys

This commit is contained in:
Abhay Rana 2015-08-22 20:41:30 +05:30
parent e681d9517c
commit deb9977110
8 changed files with 85 additions and 3 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
lightsaber-deploy
thin.pid
thin.log

1
.ruby-version Normal file
View File

@ -0,0 +1 @@
2.2.2

View File

@ -1,4 +1,9 @@
language: ruby
rvm:
- 2.2.2
script: ruby test.rb
- 2.2.2
script: ruby test.rb
deploy:
provider: script
script: bundle exec mina deploy
on:
branch: master

View File

@ -5,6 +5,7 @@ gem 'sinatra'
group :test do
gem 'minitest'
gem 'mina'
end
group :production do

View File

@ -3,10 +3,15 @@ GEM
specs:
daemons (1.2.3)
eventmachine (1.0.8)
mina (0.3.7)
open4 (~> 1.3.4)
rake
minitest (5.7.0)
open4 (1.3.4)
rack (1.6.4)
rack-protection (1.5.3)
rack
rake (10.4.2)
sinatra (1.4.6)
rack (~> 1.4)
rack-protection (~> 1.4)
@ -21,6 +26,7 @@ PLATFORMS
ruby
DEPENDENCIES
mina
minitest
sinatra
thin

View File

@ -10,7 +10,7 @@ To add a DNS record, point your domain via a CNAME entry to `lightsaber.captnemo
Next, you will need to do the following:
1. Fork this repo
2. Edit the config.yml file and add your redirect in the relevant section
2. Edit the redirects.yml file and add your redirect in the relevant section
3. File a Pull Request with your edit
Once the Pull Request is approved, the redirect will automatically be deployed

66
config/deploy.rb Normal file
View File

@ -0,0 +1,66 @@
require 'mina/bundler'
require 'mina/git'
require 'mina/rvm'
set :user, 'lightsaber'
set :domain, 'lightsaber.captnemo.in'
set :deploy_to, '/home/lightsaber/lightsaber'
set :repository, 'https://github.com/captn3m0/lightsaber.git'
set :branch, 'master'
set :identity_file, 'lightsaber-deploy'
set :rvm_path, "$HOME/.rvm/scripts/rvm"
# For system-wide RVM install.
# set :rvm_path, '/usr/local/rvm/bin/rvm'
# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
# They will be linked in the 'deploy:link_shared_paths' step.
# set :shared_paths, ['config/database.yml', 'config/secrets.yml', 'log']
# Optional settings:
# set :user, 'foobar' # Username in the server to SSH to.
# set :port, '30000' # SSH port number.
# set :forward_agent, true # SSH forward_agent.
# This task is the environment that is loaded for most commands, such as
# `mina deploy` or `mina rake`.
task :environment do
# If you're using rbenv, use this to load the rbenv environment.
# Be sure to commit your .ruby-version or .rbenv-version to your repository.
queue! "whoami"
invoke :'rvm:use[default]'
# For those using RVM, use this to load an RVM version@gemset.
# invoke :'rvm:use[ruby-1.9.3-p125@default]'
end
# Put any custom mkdir's in here for when `mina setup` is ran.
# For Rails apps, we'll make some of the shared paths that are shared between
# all releases.
task :setup => :environment do
end
desc "Deploys the current version to the server."
task :deploy => :environment do
to :before_hook do
# Don't try to decrypt it locally
if ENV['CI'] === 'true'
queue "openssl aes-256-cbc -K $encrypted_82a37ece568a_key -iv $encrypted_82a37ece568a_iv -in deploy-rsa -out lightsaber-deploy -d"
end
end
deploy do
# Put things that will set up an empty directory into a fully set-up
# instance of your project.
invoke :'git:clone'
invoke :'bundle:install'
to :launch do
if File.exists?('thin.pid')
queue "bundle exec thin -C config.yml restart"
else
queue "bundle exec thin -C config.yml start"
end
end
end
end

BIN
deploy-rsa Normal file

Binary file not shown.