.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
      skip_deploy_warning: false
    payload: '{"config": {"provider": "capistrano"}}'
  
  staging:
    default_ref: develop
    respond_in_channel: false
    locking_enabled: false
    aliases:
      - stage
    checks:
      - ci/circleci
    auto_deploy:
      ref: refs\/heads\/dev.+
    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.

locking_enabled

By default, locking and queuing are enabled for all environments. If you want to disable locking, set this option to false.

default_ref

The default branch to use for /deploy command. If not specified, master is used.

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 commit to the regular expression matching Git ref (branch, tag, etc.) will trigger an auto-deployment for this environment.

The auto-deploy skip_deploy_warning.When set to true SlashDeploy won't warn you when manually deploying to an auto-deployed 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.

Last updated