-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Description
I'm trying to set up a CI deployment pipeline for a new Python Bolt-based Slack bot. I switched the bot to local manifest mode so that I can keep the dev-only local app's manifest and production deployed app's manifest in sync with the manifest.json in my repo. I am running slack deploy from a GitHub action when changes are pushed to main with a custom deploy hook that performs AWS SSM commands to update the bot instance to the latest version of the code in main.
I noticed is that when running slack deploy, the manifest is updated to Slack's servers before the custom deploy hook runs. If the deploy hook fails, there's no rollback; the manifest remains updated while the actual deployment may not have completed. This creates a potential situation where the deployed code and the manifest become out of sync.
Version
3.10.0
OS Info
Ubuntu 24.04.3 LTS (GitHub Actions runner)
Steps to reproduce:
- Configure a custom deploy hook in
.slack/hooks.jsonthat exits with a non-zero status - Run
slack deploy - Observe that the manifest is updated on Slack's servers
- The deploy hook fails
- The manifest remains updated despite the overall deploy failing
Expected result:
- The manifest update should be rolled back if the deploy hook fails, OR
- The deploy hook should run before the manifest is updated, so failures don't leave a partially-deployed state, OR
- Some other option that achieves atomic deployment between manifest and code.
Actual result:
The manifest is permanently updated even when the deploy hook fails, leaving the Slack app configuration out of sync with the actual deployed application.
Requirements
- I've read and understood the Contributing guidelines and have done my best effort to follow them.
- I've read and agree to the Code of Conduct.
- I've searched for any related issues and avoided creating a duplicate issue.