@dotcom-tool-kit/circleci
v7.0.2
Published
This plugin manages Tool Kit commands that are run from CircleCI workflows, via a Tool Kit [`Hook`](#hooks) that automatically manages `.circleci/config.yml`. It also exposes state from the CircleCI environment for other plugins to consume generically.
Downloads
3,482
Readme
@dotcom-tool-kit/circleci
This plugin manages Tool Kit commands that are run from CircleCI workflows, via a Tool Kit Hook
that automatically manages .circleci/config.yml
. It also exposes state from the CircleCI environment for other plugins to consume generically.
This plugin will be installed as a dependency of the frontend-app, backend-heroku-app, component, circleci-deploy, and circleci-npm plugins so you do not need to install it separately if you are using any of those plugins.
Installation
Install @dotcom-tool-kit/circleci
as a devDependency
in your app:
npm install --save-dev @dotcom-tool-kit/circleci
Add the plugin to your Tool Kit configuration:
plugins:
- '@dotcom-tool-kit/circleci'
And install this plugin's hooks:
npx dotcom-tool-kit --install
Hooks
CircleCi
This hook automatically manages .circleci/config.yml
in your repo to provide configuration for CircleCI workflows to run Tool Kit commands and tasks.
Options provided in your repository's .toolkitrc.yml
for this hook are merged with any Tool Kit plugin that also provides options for the hook.
Unless they conflict, your options are appended to options from plugins, allowing you to define custom CircleCI jobs and workflows in your repository that work alongside those from plugins.
Hook options
| Property | Description | Type |
| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| executors
| an array of additional CircleCI executors to output in the generated config. | Array of objects:name
: string
image
: string
|
| jobs
| an array of additional CircleCI jobs to output in the generated config. these are used for running Tool Kit commands. for running arbitrary shell commands, use custom
. | Array of objects:name
: string
command
: string
|
| workflows
| an array of additional CircleCI workflows to output in the generated config. these reference jobs defined in the jobs
option. | Array of objects:name
: string
jobs
: Array of objects:name
: string
requires
: Array<string>
splitIntoMatrix
: boolean
runOnRelease
: boolean
custom
: Object with dynamic keys of type string
and values of type unknown
(optional & nullable)runOnRelease
: boolean
custom
: Object with dynamic keys of type string
and values of type unknown
(optional & nullable) |
| custom
| arbitrary additional CircleCI configuration that will be merged into the Tool Kit-generated config. | Object with dynamic keys of type string
and values of type unknown
(optional & nullable) |
| disableBaseConfig
| set to true
to omit the Tool Kit CircleCI boilerplate. should be used along with custom
to provide your own boilerplate. | boolean
|
All properties are optional.
Plugin-wide options
@dotcom-tool-kit/circleci
| Property | Description | Type | Default |
| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------- | :------------------- |
| cimgNodeVersions
| list of CircleCI Node.js image versions to use. if more than one is provided, a matrix build will be generated in your CircleCI config. | Array<string>
| ["18.19-browsers"]
|
All properties are optional.