anchor.diff:          service: "app"
           task-definition: "production-deploy/rails-app.json"
           task-family: "rails-app"
  -        image: "${ECR_REPOSITORY}/rails-app:${BUILDKITE_COMMIT}"
  +        image: "my.ecr.repo/rails-app:${BUILDKITE_COMMIT}"
           task-role-arn: "deployer"
           deployment-configuration: "100/200"
   ```
  
positive.code: 
  ```yml
  steps:
    - label: "\:hammer\:"
      command: "scripts/test"
    
    - block: "Unblock deployment?"
    
    - label: "\:rocket\:"
      command: "scripts/deploy"
      branches: "master"
      concurrency_group: "my-app-deploy"
      concurrency_limit: 1
  ```
  
  Until the block step is manually unblocked either in Buildkite or via an API call, the build will be paused and the "\:rocket\:" deployment step will not run.
  
  ## External deployment systems
  
  
negative.code: 
  ```yml
  steps:
    - label: "🚀"
      command: "scripts/deploy"
      branches: "master"
      concurrency_group: "my-app-deploy"
      concurrency_limit: 1
  ```
  
  The "🚀" step in the deployment example above uses the concurrency attributes `concurrency_group` and `concurrency_limit`. These work together to ensure that no matter how many builds are triggered on this pipeline at once, no "🚀" steps can run in parallel. It also prevents deploys clashing and attempting to write to the same resources. 
  
  [screenshot of a deploy pipeline]
  
  