capistrano/rails — pull request #95 by masone (2014-11-20 11:27:34+00:00)
Title: does not execute asset tasks for servers with no_release => true

For our development and staging environment, we deploy all roles to the same machine. We prevent tasks from being run twice by marking all except the app role as `no_release`.

```
role :app, 'development.silp.com'
role :clock, 'clock.development.silp.com', :no_release => true
role :worker, 'worker.development.silp.com', :no_release => true
```

Both the :app and :worker need assets, so we define `assets_roles` as follows:

```
set :assets_roles, [:app, :worker]
```

In production, we just remove the `no_release` flag and all tasks get run on each server.

capistrano-rails/assets ignores the `no_release` flag and executes the task for all roles. This is unnecessary and also leads to duplicate manifest files which in turn let's the whole deployment fail with the infamous `...assets_manifest_backup’ is not a directory` error. Also see #33 and #91

This pr uses `on release_roles` instead of `on roles`