Fix ruby 2.2 warning for circular reference that will probably become an error in future versions. Thanks to @radamanthus.
New command ey console opens a Rails console session on the master app server.
Loose gem deps on gems owned by Engine Yard.
Uses newest version of engineyard-serverside 2.6.3
Export GIT_SSH explicitly for dependency manager install steps for npm and composer. This allows accessing private repositories during dependency install.
Uses newest version of engineyard-serverside 2.6.2
Use newest bundler 1.7.9 as the default when no bundler is specified in the Gemfile.
Fixes a typo that prevented a useful error message when a child process exits abnormally.
Uses newest version of engineyard-serverside 2.6.1
Fixes a problem where integrate would not use the existing release path, thus breaking rollback and other deploy coordination that relies on having the same path between servers.
Uses newest version of engineyard-serverside 2.6.0
Supports config.ref in deploy hooks.
Synonymous with config.branch but more technically correct since the value is usually a resolved SHA rather than a branch.
Supports new ey.yml option precompile_assets_command
Setting precompile_assets_command overrides the asset precompile rake command. (default: rake assets:precompile RAILS_GROUPS=assets)
Bundler binstubs are in PATH so gem binaries will load through bundler.
Internal: Supports the optional execution of a server defined configure script.
If found, the script will modify or load app settings to customize the server before deploy and abort if problems are encountered.
If the script does not exist, this step will be skipped and deploy will continue as usual.
Asset speed improvements:
In order to speed up asset compilation in Rails, the directory /data/app/current/tmp is now preserved between deploys to maintain assets cache.
To disable this feature, set shared_tmp: false in ey.yml.
Supports new ey.yml option experimental_sync_assets
Setting to true will cause assets to be compiled once and rsync'd to other servers.
This feature will be moved out of experimental in a coming release if testing proves it solid.
Please try a few deploys on a staging environment and report back if you see any problems.
Bump version of engineyard-cloud-client to 2.1.1 to use newer RestClient with better ssl version detection.
Remove direct dependency on rest-client, which breaks gem version requirements for existing engineyard gem and the already released engineyard-cloud-client.
This gem now must be run on ruby 1.9.3 or newer. This will not impact your deployment, but may impact your local environment.
Don't worry, Engine Yard environments will continue to use the version of ruby you specify in the environment.
To use rvm to run the ey command, use alias ey="rvm 1.9.3 do ey".
Adds new command ey scp for copying files to or from servers in the environment.
Increases the filtering capabilities for servers in the ey servers command.
Uses newest version of engineyard-serverside 2.4.2
"Maintenance page still up" notices will be shown as status messages in the deploy log to prevent sticky notices on the dashboard that are not relevant.
Fixes release cleanup for before_deploy hook failures. Previously, hook failures would not trigger the cleanup of the release directory.
Supports ey.yml option keep_releases and keep_failed_releases for how many releases to keep in the releases dir (default: 3)
Warn when a file that looks like an executable deploy hook is skipped because it is not executable.
Vendor json_pure to avoid warnings from MultiJson.
Use net-ssh 2.7 which support keepalive. Set server keep alive to 60 to avoid idle connections being closed.
Uses newest version of engineyard-serverside 2.3.9
Run git remote prune origin to remove possible branch name collisions before fetching.
Update git fetch command to use + for heads and not just tags. "If the optional plus + is used, the local ref is updated even if it does not result in a fast-forward update."
Deploy hook configuration config.input_ref and config.deployed_by now have defaults and won't NoMethodError when a value isn't set.
Sets ServerAliveInterval=60 on ssh connections between servers to avoid timeouts on slow processes (esp. assets).
Fix for rollback action ignoring ey.yml configurations. ey.yml is now loaded on rollback as intended.
Uses newest version of engineyard-serverside 2.3.7
Disable automatic git garbage collection. To reenable, add gc: true to ey.yml.
Fix checking out force pushed tags and branches that sometimes would checkout the wrong commit.
Put the hostname in the filename for integrate logs so that they aren't overwritten by other integrate actions, thus becoming undebuggable.
More specific find command for permissions problems.
Fix file ownership on the integrate destination server before trying to rsync.
Fixes a problem where symlinks were not chown'd correctly, causing invalid permissions for rsync.
Tighter requirement on rabl and mime-types gems through engineyard-cloud-client to attempt to fix 1.8.7 failures caused by gem deps.
Tighter requirement on rest-client gem through engineyard-cloud-client to fix gem dep problems.
Uses newest version of engineyard-serverside 2.3.2
Add hooks before_deploy and after_deploy that happen near the beginning (after release directory is created) and at the end of the deploy task.
Support option --clean which will force gems to be reinstalled (eg. when making a server architecture change that isn't already caught)
If dependncy manager options are set to blank, treat it like "detect".
Fix an issue with integrate action.
New command ey init writes or updates an ey.yml configuration file to help users understand all the ey.yml options.
ey init is recommended for all applications to provide extra documentation in ey.yml.
New command ey servers -e env shows servers for a specified environment in a machine/user readable format.
ey ssh accepts new options -t and --each. Experimintal option -L is also supported.
Default migrate command is now rake db:migrate --trace
Uses newest version of engineyard-serverside 2.3.1
Abort rollbacks if unexpected files are found in the /data/app/releases/ directory because they disrupt the ability to find the previous and latest releases.
Supports alternative deploy strategy that fetches an archive at a remote URI and expands it. (Not yet supported from the command line)
Changes the name of the Strategy class to Source::Git.
Supports ey.yml options bundler, npm, and composer which can be set to false to disable that dependency manager during deploy.
Uses newest version of engineyard-serverside 2.2.1
Fixes deprecation warnings for internal method calls in deploy hooks.
Send deployed_by and input_ref information with rollback (no ref is input so input_ref only has a placeholder value)
When ey.yml loads as anything other than a Hash, raise an error telling the user that ey.yml is malformed.
Uses newest version of engineyard-serverside 2.2.0
Updates fallback bundler version to latest v1.3.5.
Supports using multiple dependency managers at the same time (bundler, composer, and/or npm)
Replaces command runner to address streaming log, idle connection, and random systemu failures.
Adds config/application.rb to the asset_dependencies to trigger asset precompilation.
Removes syncing of file modification times during push code operation in deploy. Syncing times occasionally causes unfixable permissions errors.
Clarifies inferred asset warning message.
Improves some of the maintenance page status messages.
Removes poorly encapsulated methods config.enable_maintenance\_page? and config.disable_maintenance_page?. Relocated to Maintenance class. (Check eydeploy.rb files)
Removes deprecated c method (use config instead)
In deploy hooks, deprecates @configuration (use config), @node (use config.node), and method_missing access of config methods (use config.method).
Uses newest version of engineyard-serverside 2.1.4
Doesn't reuse assets when assets were not compiled last deployment.
Improves composer support.
Supports new flag --shell (-s) for ey ssh which allows you to choose the shell that runs the command. (default: bash) Has no effect on ey ssh without a command.
Supports new flag --no-shell to run the ey ssh command without a shell. (this is the standard behavior of the unix ssh command) Has no effect on ey ssh without a command.
Uses newest version of engineyard-serverside 2.1.3
Fixes a formatting error in sqlite database.yml files.
Patches LANG gem install error.
Use newest deployment version that patches a problem with calling Set#first on some ruby versions.
Add a new command ey timeout-deploy which will mark stuck deploys as canceled.
Bumps default bundler version to latest 1.3.4
During deploy, doesn't precompile assets when git-diff shows no changes to asset_dependencies
Supports new ey.yml option asset_dependencies which is a list of relative paths to search for asset changes each deploy.
The default asset_dependencies are: app/assets lib/assets vendor/assets Gemfile.lock config/routes.rb
Supports new ey.yml option precompile_unchanged_assets: true compiles assets even if no changes would be detected.
Supports new ey.yml option precompile_assets_task: taskname which overrides the default assets:precompile
Supports new ey.yml option asset_strategy which supports: shared, private, cleaning, or shifting.
The default asset strategy is shifting which is the same behavior as previous versions.
Fixes a bug that could cause Passenger to restart multiple times during each deploy.
Change order of compile_assets during deploy. Compile assets now happens before enabling maintenance page.
ey logout removes the API token from ~/.eyrc
ey login logs you in (don't be surprised)
Failed releases are now saved in a 'releases_failed' directory, parallel to the existing 'releases' directory.
Resolved a bundler version conflict that could occur for apps that specified a particular bundler version.
Previous release had gemspec problems (seriously rubygems, releasing from 1.9.3 shouldn't break everyone on 1.8)
Force encoding on commands going across Net::SSH (which seems incapable of handling UTF-8 encoded strings)
Diagnostic code for command encoding when running in verbose mode.
Upgrade to latest net-ssh to fix string encoding issues in 1.9.x.
Add support for $ENGINEYARD_API_TOKEN on the command line to override token fetching.
Fix lingering AppCloud mentions.
Use -R [REF] or --force-ref [REF] to override the default branch. Specifying --ignore-default-branch, --force-ref or -R without arguments still works like before.
Put more information in the deploy logs so failing deploys show something.
Expose deployed_by user name in deploy hooks.
Handle not found when accessing deployment api before deploying.
Fix last release.
Print more informative messages on deploy.
Include new version of deploy system that fixes a bug with GIT_SSH not being set for some instances.
Fix gemspec problem
Includes an engineyard-serverside fix to prevent rebuilding gems on every deploy.
The below changes improve other-ruby support. Notably, engineyard should now work from rubinius for the most part.
[refactor] More require, less autoload
[refactor] Clean up the way we read and write the .eyrc file.
[internal] Specs no longer depend on FakeFS.
[internal] Remove unused 'custom endpoint' complexity. $CLOUD_URL can still be set to override the api endpoint.
Exit from ey ssh with the exit status of the ssh command. If running on multiple instances, exits with the status of the first failure, or 0 if all instances succeed.
Set LANG to 'en_US.UTF-8' while installing gems to avoid failures on 1.9.x
Ran into the YAML Syck thing again when building the last version. Re-releasing.
Use new engineyard-serverside version that should actually really fix the 32bit / 64bit problem. We now check every instance instead of (incorrectly) only checking the app master.
Include new engineyard-serverside version with fixes:
Deploy fix: Don't fail if we can't precompile assets.
Deploy fix: Delete bundled_gems directory if we can't determine under which 32 or 64bit the last bundle was run.
bundle_without: ey.yml option allows you to specify custom bundle install --without string (list of space separated groups, replaces the default 'test development') Put the option in your ey.yml file under the environment name key.
Includes a fix for Gemfile detection in engineyard-serverside.
Improve warning messages during deploys.
Exclude bundler environment variables explicitly on bundler install during deploy.
Remove bundler 0.9 support in engineyard-serverside.
ey whoami will tell you who you're logged in as.
Use the environments API to check whether run migrations or not when the flag is
Update version of serverside gem for rails 3.1 assets support.
Patch RestClient to stop sending cookies - they interfere with AWS S3.
Update README to include more info about the ey.yml config.
Suggest ey environments --all when no environments match.
Fix an issue with uploading recipe tgz files on windows.
Start recording the new load_balance_ip_address from the environment API.
Fix for deprecated API key "stack_name"
ey status shows most recent deployment status of an app and environment.
Add --file (-f) option to specify a .tgz file containing the custom cookbooks dirctory.
Add --apply option which automatically runs recipes uploaded with ey recipes upload.
Improve recipes documentation.
Alias ey update to ey rebuild to conform to the terminology on the AppCloud dashboard.