There is a new “no-op” type of job available to customers, which does nothing. This is useful in some cases to shape complex workflows and simplify dependency relationships when there are large fan-in/fan-out scenarios.
Use “type: no-op” when defining a job at it does nothing.
some-job:
type: no-op
For example, if you had a workflow for building and deploying a binary to several distribution channels you might have a configuration like this:
workflows:
main:
jobs:
- build-binary
- generate-docs
- run-tests
- publish-to-app-store:
requires:
- build-binary
- generate-docs
- run-tests
- publish-to-play-store:
requires:
- build-binary
- generate-docs
- run-tests
- publish-to-website:
requires:
- build-binary
- generate-docs
- run-tests
With the addition of a no-op job called “build” you could shape your workflow as follows:
workflows:
main:
jobs:
- build-binary
- generate-docs
- run-tests
- build:
requires:
- build-binary
- generate-docs
- run-tests
- publish-to-app-store:
requires:
- build
- publish-to-play-store:
requires:
- build
- publish-to-website:
requires:
- build
This reduces duplication of requires stanzas and makes it easier to create new jobs both before and after “build” without making mistakes in the dependency relationships.