- Fix ruby 2.2 warning for circular reference that will probably become an error in future versions. Thanks to @radamanthus.
- New command
ey consoleopens 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_SSHexplicitly for dependency manager install steps for npm and composer. This allows accessing private repositories during dependency install.
- Export
- 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.refin deploy hooks. Synonymous withconfig.branchbut more technically correct since the value is usually a resolved SHA rather than a branch. - Supports new ey.yml option
precompile_assets_commandSettingprecompile_assets_commandoverrides 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/tmpis now preserved between deploys to maintain assets cache. To disable this feature, setshared_tmp: falseiney.yml. - Supports new ey.yml option
experimental_sync_assetsSetting totruewill 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.
- Supports
- 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
eycommand, usealias ey="rvm 1.9.3 do ey". - Adds new command
ey scpfor copying files to or from servers in the environment. - Increases the filtering capabilities for servers in the
ey serverscommand. - 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_deployhook failures. Previously, hook failures would not trigger the cleanup of the release directory. - Supports
ey.ymloptionkeep_releasesandkeep_failed_releasesfor how many releases to keep in thereleasesdir (default: 3) - Warn when a file that looks like an executable deploy hook is skipped because it is not executable.
- Vendor
json_pureto 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 originto 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_refandconfig.deployed_bynow 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.
- Run
- Uses newest version of engineyard-serverside 2.3.7
- Disable automatic git garbage collection. To reenable, add
gc: trueto 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.
- Disable automatic git garbage collection. To reenable, add
- Tighter requirement on
rablandmime-typesgems throughengineyard-cloud-clientto attempt to fix 1.8.7 failures caused by gem deps. - Tighter requirement on
rest-clientgem throughengineyard-cloud-clientto fix gem dep problems.
- Uses newest version of engineyard-serverside 2.3.2
- Add hooks
before_deployandafter_deploythat 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.
- Add hooks
- New command
ey initwrites or updates an ey.yml configuration file to help users understand all the ey.yml options.ey initis recommended for all applications to provide extra documentation in ey.yml.
- New command
ey servers -e envshows servers for a specified environment in a machine/user readable format. ey sshaccepts 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, andcomposerwhich 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_byandinput_refinformation with rollback (no ref is input soinput_refonly 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.rbto theasset_dependenciesto 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?andconfig.disable_maintenance_page?. Relocated to Maintenance class. (Check eydeploy.rb files) - Removes deprecated
cmethod (useconfiginstead) - In deploy hooks, deprecates @configuration (use
config), @node (useconfig.node), and method_missing access of config methods (useconfig.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)forey sshwhich allows you to choose the shell that runs the command. (default: bash) Has no effect oney sshwithout a command. - Supports new flag
--no-shellto run theey sshcommand without a shell. (this is the standard behavior of the unix ssh command) Has no effect oney sshwithout 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-deploywhich 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_dependencieswhich is a list of relative paths to search for asset changes each deploy.- The default
asset_dependenciesare: app/assets lib/assets vendor/assets Gemfile.lock config/routes.rb
- The default
- Supports new ey.yml option
precompile_unchanged_assets: truecompiles assets even if no changes would be detected. - Supports new ey.yml option
precompile_assets_task: tasknamewhich overrides the defaultassets:precompile - Supports new ey.yml option
asset_strategywhich supports:shared,private,cleaning, orshifting.- The default asset strategy is
shiftingwhich is the same behavior as previous versions. - See
README.markdownorlib/engineyard-serverside/rails_assets/strategy.rbfor full explanation.
- The default asset strategy is
- Supports new ey.yml option
bundle_optionswhich can be used to specify additional bundle install command line options. - Supports setting of ey.yml option
bundle_withoutto nil to remove--withoutfrom the bundle install command. - Refactor dependency management (bundler, npm, none) to allow more flexibility (may break existing eydeploy.rb files)
- Supports new ey.yml option
eydeploy_rb: falsewhich enables or disables eydeploy.rb file loading. (default: load eydeploy.rb) - Changes the order of eydeploy.rb loading to happen after ey.yml is parsed during deploy.
- Fixes a race condition during deploy where
currentsymlink was not moved atomically.
- Uses new version of engineyard-serverside 2.0.6 with the following bug fixes:
- Fix for command line config option
--config precompile_assets:true/falsewhich was being interpreted as a string. - Don't exclude the
RAILS_ENVGemfile group from bundle install. (i.e. don't do--without developmentindevelopmentmode)
- Fix for command line config option
- New version of
engineyard-serversidewhich includes:- Change concurrency code to use a simple threaded model (faster deploys on some instances)
- Clean up local branches that might interfere with the git checkout.
- Command line option -q (or --quiet) mutes non-essential CLI output for most commands.
- Uses new version 2.0.4 of the deploy system.
- Supports new ey.yml option during deploy to control on which roles asset precompilation happens.
- Follows YAML Array syntax (using :app, :app_master, :solo, :util) or :all.
- Syntax:
asset_roles: :all (default is to exclude :util but include all others. [:app, :app_master, :solo])
- During deploy, adds
RAILS_GROUPS=assetsto rake assets:precompile to improve asset compilation performance. - Records exceptions raised during deploy into the deploy log when possible.
- Fixes a bug where permissions problems may cause integrate action to fail.
- Fixes a problem where "maintenance page still up" notice would stay on Cloud Dashboard too long. Downgraded message severity.
- Garbage collect git at the end of each deploy. First one may take a while but the next ones will be faster and reduce extra disk usage.
- Send serverside version to the deploy API to help with 2.0.x upgrade path on dashboard.
- Upgrade to engineyard-cloud-client version 1.0.7
- Vendor Thor to help reduce Rails incompatibilities.
- During deploy, --config can be used to override most ey.yml options on demand.
- Alias --extra-deploy-hook-options as --config for easier usage.
- During deploy, only symlink shared config files that actually exist.
- During deploy, don't display the database adapter warning when the environment does not have a database.
- During deploy, chown shared/bundled_gems dir to deploy user to ensure bundle install works.
- Fix calls to system() leaking stdout into the command output.
- Don't redirect command output to /dev/null because windows doesn't like it.
- Use new serverside-adapter that allows setting engineyard-serverside version separately.
- Update serverside to print less deprecation warnings.
- Repository interactions pay attention to $GIT_DIR and $GIT_WORK_TREE.
- Increases responsiveness of most API interactions.
- Prints notices when ey.yml defaults are used.
- Improves failed deployment output messaging.
- Allows
--app,--account, and--environmentforey environmentsfor extra filtering. - Prints an error when a command line option, like
--environment, is specified without an argument. - No longer guesses migration behavior. ey.yml must contain
migrate: true # or falsefor each environment. ey deploy will walk you through on your first deploy. - Adds command
ey web restartto restart application servers without deploying. - New version of
engineyard-serverside(and adapter), which includes:- Default bundler version is now 1.1.5.
- Deploy hooks now have access to
account_nameandenvironment_name. - Improves deploy output, especially for
--verbose. - Sends all log output through a new Shell object that formats and adds timestamps.
- Loads
ey.ymlorconfig/ey.ymlto customize deploy settings. - Supports new ey.yml options to control automatic maintenance page:
maintenance_on_restart: true or false (default: false except for glassfish and mongrel)maintenance_on_migrate: true or false (default: true)
- Don't remove maintenance pages that weren't put up during this deploy if maintenance options (above) are set to false.
- Supports new ey.yml options to control asset precompilation:
precompile_assets: true or false (default: inferred using app/assets and config/application.rb)
- Supports new ey.yml option to ignore the missing database adapter warning:
ignore_database_adapter_warning: true (default: false)
- 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 whoamiwill tell you who you're logged in as.
- Use the environments API to check whether run migrations or not when the flag is not provided.
- 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 statusshows 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.
- Improve the documentation in the README file.
- Send a User-Agent header with all API requests.