- Removes usage of
--no-ri
and--no-rdoc
for allgem
operations for compatibility with newergem
releases. - Verifies that
bundler
version detection is moved largely toGemfile.lock
rather thanGemfile
.
- Repairs the server integration workflow that was pushed in a bad state in the previous release.
- Supports new ey.yml option
ignore_ey_config_warning
. When set to true, will not warn when ey_config is missing.
- Raise asset compilation error in case of
experimental_sync_assets
is turned on.
- Create shared/node_modules directory for reuse across deployments.
- Pass --production to npm install when NODE_ENV is production.
- Fix rdoc dev dependency.
- Don't remove the bundled gems directory when ruby version changes.
- Adjust gem propagation to install the gem with a resin prefix for v5 stack.
- (skipped)
- Hardcode path to gem binary to avoid version mismatch problems.
- Fix maintenance page generation.
- Update maintenance page generation.
- Use bundler 1.13.6 as the default when no bundler is specified in the Gemfile.
- use --recursive when updating git submodules
- 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.
- 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.
- Supports
config.ref
in deploy hooks. Synonymous withconfig.branch
but more correct because theinput_ref
is automatically resolved to a SHA before deploy. - Supports new ey.yml option
precompile_assets_command
Settingprecompile_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. - Supports the optional execution of a server defined configure script. If found, the script can 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.
- 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, setshared_tmp: false
iney.yml
. - Supports new ey.yml option
experimental_sync_assets
Setting totrue
will cause assets to be compiled once and rsync'd to other servers.
- Add
maintenance_status
option to the CLI that outputs "Maintenance status: down" or "Maintenance status: up" if the maintenance page is on the server
- "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
optionkeep_releases
andkeep_failed_releases
for how many releases to keep in thereleases
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.
- Make sure
release_path
is set correctly to the latest release for maintenance actions
- Do not remove
public/system
from the repository when it exists. Warn that maintenance pages may not work. - Add support for non-Ruby deploy hooks. These have the same names/locations as the ruby hooks but without the '.rb' suffix (e.g.
deploy/before_symlink
).
- 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
andconfig.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.
- Explicitly use current ruby to syntax check deploy hooks.
- Release yanked. This release contained an error that was caught in testing.
- Supports new ey.yml option
ignore_gemfile_lock_warning
. When set to true, will not warn when Gemfile.lock is missing. - Fixes a bug introduced by 2.3.6 that caused tags to be fetched, but not heads. This prevented deployment of all branches that weren't tags.
- Fix a bug where force pushed tags and other branch changes are never fixed in the repository cache.
- Disable automatic git garbage collection. To reenable, add gc: true to ey.yml.
- 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.
- Add hooks
before_deploy
andafter_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.
- Fix find maxdepth problem that causes shared/config files to by symlinked incorrectly.
- Add
--no-dev
and--optimize-autoloader
to default composer install command. - Supports new ey.yml options:
bundler
,composer
, andnpm
which can be set to true or false to enable or disable each dependency manager. - Supports experimental ey.yml option:
restart_groups: n
. When set to a numbern
greater than 1, app servers are divided inton
groups and each group is restarted serially.
- 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.
- Accepts flags for git and archive strategies (
--git
and--archive
) that are passed a uri - Changes the name of the Strategy class to Source.
- Fixes deprecation warnings for internal method calls in deploy hooks.
- 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 theasset_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?
andconfig.disable_maintenance_page?
. Relocated to Maintenance class. (Check eydeploy.rb files) - Removes deprecated
c
method (useconfig
instead) - In deploy hooks, deprecates @configuration (use
config
), @node (useconfig.node
), and method_missing access of config methods (useconfig.method
).
- Don't reuse assets when there are no assets to reuse
- Better composer support.
- Ensure LANG is set when gem install is run.
- Fix rails database.yml for sqlite-only deployments
- Auto-update composer before installing (php)
- Fixes a problem where Set#first was called in a ruby version that doesn't support it.
- Bumps default bundler version to latest 1.3.4
- Fixes a race condition during deploy where
current
symlink was not moved atomically. - Don'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
- The default
- 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 defaultassets:precompile
- Supports new ey.yml option
asset_strategy
which supports:shared
,private
,cleaning
, orshifting
.- The default asset strategy is
shifting
which is the same behavior as previous versions. - See
README.markdown
orlib/engineyard-serverside/rails_assets/strategy.rb
for full explanation.
- The default asset strategy is
- Supports new ey.yml option
bundle_options
which can be used to specify additional bundle install command line options. - Supports setting of ey.yml option
bundle_without
to nil to remove--without
from 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: false
which enables or disables eydeploy.rb file loading. (defaults to enabled) - Changes the order of eydeploy.rb loading to happen after ey.yml is parsed during deploy.
- Fix encoding errors in logs when non-ascii characters are displayed.
- Fix for command line config option
--config precompile_assets:true/false
which was being interpreted as a string. - Don't exclude the
RAILS_ENV
Gemfile group from bundle install. (i.e. don't do--without development
indevelopment
mode)
- Change concurrency code to use a simple threaded model.
- Clean up local branches that might interfere with the git checkout.
- Supports new ey.yml option to control on which roles asset precompilation happens.
- Must be a 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])
- Adds
RAILS_GROUPS=assets
to 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.
- Make sure command line --config options get turned from strings into booleans if needed
- Only symlink shared config files that actually exist.
- Don't display the database adapter warning when
nodatabase.yml
is present. - chown shared/bundled_gems dir to deploy user to ensure bundle install works.
- Reduce the number of deprecation warnings.
- Default bundler version is now 1.1.5.
- Deploy hooks now have access to
account_name
andenvironment_name
. - Improves deploy output, especially for
--verbose
. - Sends all log output through a new Shell object that formats and adds timestamps.
- Loads
ey.yml
orconfig/ey.yml
to 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)
- Give better feedback when maintenance is enabled/disabled (or not).
- Output a better error when a deploy hook fails.
- Compile assets before maintenance page is installed.
- Provide run! and sudo! to deploy hooks. If the command exits non-zero the deploy hook will fail, stopping the deploy.
- Replace Open4 with systemu
- This version has been pulled before release.
- Fix incompatibility issues between Open4 and Ruby 1.9
- Add celluloid for Ruby 1.9 compatible futures in preparation for internal 1.9 upgrade.
- If the application Gemfile contains sqlite3 but no other recognized database adapter, generate a SQLite database.yml and print a warning.
- Adds timestamps to deploy logs
- Add LANG to restart command.
- Fix a bug where added instances would sometimes be unable to bundle.
- Fix a bug where gems were cleaned on every run.
- Last release was built with a rubygems that has the Syck problem. Re-releasing. (This gem was never released into the wild)
- Really seriously fix 32/64 bit system problems this time.
- Add ey_services_config_deploy.yml file through EY::InstanceAPI during deploy.
- Bump default bundler version to 1.0.21
- Re-bundle gems if there is no version file found with which to compare.
- Don't fail is pre-compilation fails. Let users know we're going to try to precompile assets.
- bundle_without: ey.yml option allows you to specify custom bundle install --without string (list of space separated groups, replaces the default 'test development')
- Refactor how bundler options are loaded.
- Improve clarity of warning output.
- Use unset instead of env -i to exclude Bundler env.
- Remove support for Bundler 0.9.x
- Add warning when no database adapter is found in the Gemfile.lock
- Deployment previously failed when the git repo had only a single commit.
- Add 'before_compile_assets.rb' and 'after_compile_assets.rb' deploy hooks
- Run
rake assets:precompile
if it is available and enabled for Rails 3.1 apps - Treat 'public/assets' as a shared directory if it is managed by 'rake assets:precompile'
- Beta Node.js support for EY Labs
- Abort deploy when
git fetch
fails