Very simple, no parameters needed, no enums, no booleans... just a really easy way to trigger a deploy with CircleCI. We can do this making use of the trigger_source pipeline value. When you click the button in CircleCI to "Trigger Pipeline" the value would be api
vs something like webhook
.
version: 2.1
jobs:
deploy:
machine:
image: ubuntu-2204:current
steps:
- run: echo 'Deploying...'
workflows:
deploy:
when: { equal: [ api, << pipeline.trigger_source >> ] }
jobs:
- deploy
If your workflow needs a test job, consider doing something a bit more complicated. Here we use two when
conditions to work with a parameter.
version: 2.1
parameters:
workflow:
type: enum
default: test
description: The workflow to trigger.
enum: [test, deploy]
jobs:
test-job:
machine:
image: ubuntu-2204:current
steps:
- run: echo 'Testing...'
deploy-job:
machine:
image: ubuntu-2204:current
steps:
- run: echo 'Deploying...'
workflows:
test:
when: { equal: [ test, << pipeline.parameters.workflow >> ] }
jobs:
- test-job
deploy:
when: { equal: [ deploy, << pipeline.parameters.workflow >> ] }
jobs:
- deploy-job
Now your CircleCI config will run tests by default and you can easily trigger a deploy via any branch using the "Trigger Pipeline" button.
Top comments (0)