Skip to content

A copy strategy for Capistrano 3, which uses git ls-files local, tars the files, uploads and extracts. This could be usefull if you are in a shared hosting environment.

License

Notifications You must be signed in to change notification settings

creative-workflow/capistrano-scm-localgitcopy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

capistrano-scm-localgitcopy

A copy strategy for Capistrano 3, which uses git ls-files local, tars the files, uploads and extracts.

It depends on the local git revision.

It is helpfull if you have a shred web hoster like netcup with a very limited set of commands.

Requirements

Machine running Capistrano:

  • Capistrano 3
  • tar
  • git

Servers:

  • tar

Installation

First make sure you install the capistrano-scm-localgitcopy by adding it to your Gemfile:

gem "capistrano-scm-localgitcopy"

Add to Capfile:

require 'capistrano/scm/localgitcopy'
install_plugin Capistrano::SCM::LocalGitCopy

Configuration (defaults)

set :local_git_copy_archive_name, 'deploy-archive.tar.gz'      # local archive name
set :local_git_copy_include_dir,  './'                         # you can use a subfolder for deployment
set :local_git_copy_tar_roles,    :all                         # roles to run on tar
set :local_git_copy_tar_verbose,  true                         # enable verbose mode for tar
set :local_git_copy_exclude_dir,  nil                          # exclude directories
set :local_git_copy_temp_file,    '/tmp/deploy-archive.tar.gz' # temp file on server

Pitfall: git and utf 8 chars

If you have problems with utf8 chars in file names that wont included in the deploy tar, do the following:

$ git config --global core.precomposeunicode true
$ git config core.precomposeunicode.true

$ git ls-files | grep "\""
$ git rm --cached "`printf "<File>"`" #this for each file
$ git commit -m "clean up bad encoding of file names"

License

The MIT License (MIT)

Changelog

0.2.0
  • add prefix local_git_copy_ to options
  • rename plugin class from Capistrano::SCM::Localgitcopy to Capistrano::SCM::LocalGitCopy
  • really use local_git_copy_tar_roles
0.1.0
  • Initial release

About

A copy strategy for Capistrano 3, which uses git ls-files local, tars the files, uploads and extracts. This could be usefull if you are in a shared hosting environment.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages