.slashdeploy.yml

The complete reference on the SlashDeploy configuration file.

SlashDeploy configuration is managed through a .slashdeploy.yml file in the root of your repository. Any change to this file is picked and applied by SlashDeploy automatically, upon a Git push to the respective GitHub repository.

Below is a sample configuration file with all the available configs:

.slashdeploy.yml
---
version: 1
default_environment: staging
default_channel: deploy
environments:
production:
channel: production
aliases:
- prod
checks:
- ci/circleci
- codeclimate/total-coverage
auto_deploy:
ref: refs/heads/master
payload: '{"config": {"provider": "capistrano"}}'
staging:
respond_in_channel: false
aliases:
- stage
checks:
- ci/circleci
auto_deploy:
ref: refs/heads/develop
payload: '{"config": {"provider": "capistrano"}}'
usage: |
*Usage doc on how to deploy this repo:*
You can even use Slack formatting with emojis :raised_hands:

Available configs

Global

Global configuration applied to all SlashDeploy operations and environments.

Config

Description

version

The version of this configuration file. Always set a version to guarantee that your configuration remains functional even with new, possibly, breaking changes.

default_environment

The default environment to use in commands, such as /deploy and /deploy latest, if not specified.

default_channel

The default Slack channel where to receive deployment notifications. Remember to /invite @slashdeploy bot user to this channel. If it's omitted, SlashDeploy will send direct messages to the user who triggered a deploy.

enviroments

The array of available deployment environments for this repository. In the example above, there are two named environments production and staging.

usage

The free-form usage text to let your users know of anything special about deploying this repository. For instance, supported deployment tasks, locking conventions, or even deployment/code ownership. You can also use Slack formatting and emojis in here. Users can then read the usage help with /deploy help <repo> command.

Environment

Environment-specific configuration.

Config

Description

channel

The Slack channel where to receive deployment notifications for this environment. Remember to /invite @slashdeploy bot user to this channel. If it's omitted, SlashDeploy will user global default_channel.

respond_in_channel

By default, Slack commands will be "echoed" back to the channel they were issued from. If you want them to be "Only visible to you", set this option to false.

aliases

A list of environment aliases. In the example above, production can be also deployed as prod and staging as stage.

checks

A list of GitHub required commit status checks to ensure deployments to this environment happen only when all of the listed checks are passing.

auto_deploy

The auto-deployref. Any matching commit to the specified Git ref (branch, tag, etc.) will trigger an auto-deployment for this environment.

payload

Any additional metadata to pass along to the GitHub deployment creation. It is a JSON text field that will be passed on by GitHub when a deployment event is dispatched to the deployment system.