Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[close #92] Fail on release failure #93

Merged
merged 2 commits into from
Jul 30, 2020
Merged

Conversation

schneems
Copy link
Contributor

@schneems schneems commented Jul 27, 2020

When a release fails to execute the app is never deployed, for example if you were to run:

git push heroku master && heroku run ls

Both commands will run, but heroku run ls will be empty since the release never finished. This creates weird to debug hatchet tests as the deploy will work but any subsequent app.run(<cmd>) will fail in strange ways. You can see an example of a failure in #92.

This PR seeks to make this behavior more explicit, by explicitly failing on an incomplete release. This is a breaking change so it's a major version bump.

@schneems schneems changed the title Fail on release failure [close #92] Fail on release failure Jul 27, 2020
When a release fails to execute the app is never deployed, for example if you were to run:

```ruby
git push heroku master && heroku run ls
```

Both commands will run, but `heroku run ls` will be empty since the release never finished. This creates weird to debug hatchet tests as the deploy will work but any subsequent `app.run(<cmd>)` will fail in strange ways.

This PR seeks to make this behavior more explicit, by explicitly failing on an incomplete release. This is a breaking change so it's a major version bump.
@schneems schneems merged commit a8d2c2f into main Jul 30, 2020
@schneems schneems deleted the schneems/fail-on-release-fail branch July 30, 2020 16:08
schneems added a commit to heroku/heroku-buildpack-python that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-php that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
edmorley pushed a commit to heroku/heroku-buildpack-python that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)

[skip changelog]
schneems added a commit to heroku/heroku-buildpack-jvm-common that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-scala that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-clojure that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-java that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
schneems added a commit to heroku/heroku-buildpack-nodejs that referenced this pull request Aug 11, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)
dryan pushed a commit to dryan/heroku-buildpack-python that referenced this pull request Nov 19, 2020
- ActiveSupport's Object#blank? and Object#present? are no longer provided by default (heroku/hatchet#107)
- Remove deprecated support for passing a block to `App#run` (heroku/hatchet#105)
- Ignore  403 on app delete due to race condition (heroku/hatchet#101)
- The hatchet.lock file can now be locked to "main" in addition to "master" (heroku/hatchet#86)
- Allow concurrent one-off dyno runs with the `run_multi: true` flag on apps (heroku/hatchet#94)
- Apps are now marked as being "finished" by enabling maintenance mode on them when `teardown!` is called. Finished apps can be reaped immediately (heroku/hatchet#97)
- Applications that are not marked as "finished" will be allowed to live for a HATCHET_ALIVE_TTL_MINUTES duration before they're deleted by the reaper to protect against deleting an app mid-deploy, default is seven minutes (heroku/hatchet#97)
- The HEROKU_APP_LIMIT env var no longer does anything, instead hatchet application reaping is manually executed if an app cannot be created (heroku/hatchet#97)
- App#deploy without a block will no longer run `teardown!` automatically (heroku/hatchet#97)
- Calls to `git push heroku` are now rate throttled (heroku/hatchet#98)
- Calls to `app.run` are now rate throttled (heroku/hatchet#99)
- Deployment now raises and error when the release failed (heroku/hatchet#93)

[skip changelog]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants