- feat(config validation) setup validators for some optons that could be descructive if not set:
Base: remote_dir Branches: public_dir Releases: release_count, public_dir, releases_dir
- refactor(config) change the internal method signature of Config to use keyword arguments
options
, andtasks
- add a
run_local
method to Remote to wrapShell.run_local
to display commands when in verbose mode.
- fix bug in manifest creation/saving from changes in ruby 2.2.x
- bump dependency of
HereOrThere
, prevents issues w/ getting the contents of remote files when they're large enough to have chunked responses.
- fix bug where
Strategy::Branches
wasn't caching manifests, causing the prune task to fail at removing releases from the manifest.
- remote specific config is now tied directly to the remote through it's own config object. Internally this cleans up many checks, but causes [BREAKING] changes if you depended on the API of any of the internal classes. If you use config data in any of your tasks, it's now suggested that you do so inside your
remotes
iterators. - get
Strategy::Branches
supporting multiple remotes. The stdout output oflist_releases
andprune_releases
has changed, so if you depended on this it may be breaking. - move
Strategy::Branches
custom behavior to apost_deploy_task
so it uses the samedeploy
method inherited fromStrategy::Base
. This could cause [BREAKING] changes if you use a custompost_deploy_task
with aBranches
deploy type.
#persisted_releaser
is available on a deployment from rake tasks. this will be the same for tasks called during a deploy for example.- addition of a
#current_release_data
method for the Revisions releaser. This pulls merged data from the manifest and the log file. - add
log_file_path
andlog_file_entry
to config to setup a log file for all deploys - [BREAKING] change interface of releasers to expect being able to pass a second argument (build data) to #create_release
- add task hook for before the symlink in the Revisions releaser.
pre_symlink_task
gets called with |releaser, remote| in a remote loop so it's run for each. - add ability to create user rake tasks that have access to deployment information. see the docs for more info
- make sure that Revisions#remove_untracked_revisions checks it against the "current" revision before removing it.
- add a second check to git after the build task to ensure build doesn't affect checked in files
- base includes a
deployment:build
anddeployment:post_deploy
task to allow direct triggering of these deployment steps - add the
verbose
option for deployments - fix bug in default logger to adjust for statuses that are too long
- create
Branches::Index
and render erb for the template - move Branches specific ideas into the Branches namespace
- add
Deployment::Manifest#put
method to update manifest data for matching records - remove
Statistrano::Deployment::Manifest
&Statistrano::Deployment::Manifest::RemoteStore
in favor of using the same manifest as the Revisions releaser - add option for rsync flags [b5a248be8d96d142ca94c076d80ad6deaa0fa69e]
- loosen rainbows dependency to work with old & new bananabin
- reorganize deployment types & releasers. now use a single remote object, and different "strategies" for base, releases, & branches and different "releasers" for single or revisions
- remote multi_target in favor of merging code paths w/ strategies & releasers
- can now access deployment info directly in build_tasks & post_deploy_tasks by giving arity [de05bb3a7d760fc51571b0f93f457065758fa772]
- rake tasks no manually registered (instead of on initialization) [ac72eb0a65681e472b21c486fa67f7f0dd635c02]
- add explicit setting for file & directory permissions on deploy [25ed930235e348fd6068cedbdc09b33e788fc3d5]
- tag release
- fix copy current release step, target needs to not exist
- copy current release to help reduce time spent rsyncing new build
- make dir with 775, so global (ngnx) can read them
- release dir created recursively, ensures permissions on releases dir
- add guard to not remove a currently symlinked release
- manifests check if they exist before trying to create themselves
- add Target#test_connection method to allow for early testing of remote connections
- MultiTarget post_deploy_task accepts blocks just like build_task
- add a "verbose" option to Target to log each command run
- add a "new architecture" MultiTarget deployment type
- fix Util::symbolize_hash_keys to work with nested hashes
- add a types cache and register methods for registering deployment types
- remove Git code (it wasn't being used)
- bump Asgit dependency to 0.1
- misc refactoring
- switch to Asgit for git status queries
- change the way ssh sessions are handled, now passed with the config
- using HereOrThere for running commands (has a consistent response object)
- fix nil error for manifest in branches
- re-architect configuration for deployment classes
- now suport a "sugar" dsl syntax for setting config while defining deployments
- fix bug where branch deployments would update timestamp on all branches in the manifest
- add an
open
rake task for Branches deployments to navigate to the url
- big refactoring to reduce complexity of the public methods
- fix a regression that caused Git.remote_up_to_date? to fail
- move a few setup methods
- add integration specs for the deployment modules
- add a spec for the git module
- rewrite Shell.run to use Open3 and improve output
- loosen all the dependencies
- loosen dependency on slugity
- add environment variable DEPLOYMENT_ENVIRONMENT set to the name of the deployment
- only create a single ssh connection for the deploy task (after_deploy creates a second)
- add exception handling to
invoke_build_task
, exit and log on an exception
- expose less of the statistrano namespace to help with conflicts of common names (like Log)
- now abort on errors
- add rake task descriptions
- add times for rsync task
- change rsync behavior, adds delete-after
- clone previous release first if it exits for release type deployments
- move setup to a
prepare_for_action
method, defer connection until needed
- regenerate index after pruning releases
- code overhaul
- new way to define deployments
- classes for different deployment types
- add pruning to branches deployments
- fix error with newlines in the current_git_commit
- updated apearance of index page
- add updated at to feature index page
- add post_deploy_task to servers
- add generate namespace, and generate:index task to rake tasks
- fix log order bug, standardize the printed output
- fixed bug with manifest for releases that have the same name
- fix manifest creation for feature releases
- add a releases:browse task
- initial gem creation