github-workflow-controller/README.md

58 lines
1.5 KiB
Markdown

A plugin to control GitHub workflows.
# Usage
The following settings change this plugin's behavior.
* github_token (required, **secret recommended**) GitHub authentication token.
* github_repo (required) the repo to act on.
* workflow_id (required) the workflow to act on, eg `workflow.yml`.
* workflow_actions (required) the actions to execute, one or more (separated by `,`) of:
* `start`: starts the workflow by creating a `workflow_dispatch` event
* `cancel`: cancels all queued and running workflows
* `delete`: deletes all completed workflow runs
Below is an example `.drone.yml` that uses this plugin.
```yaml
kind: pipeline
name: default
steps:
- name: create workflow_dispatch event
image: itsblue.dev/plugins/github-workflow-controller
settings:
github_token:
from_secret: github-token
github_repo: "foo/bar"
workflow_id: "workflow.yml"
workflow_actions: start
```
# Building
Build the plugin binary:
```text
scripts/build.sh
```
Build the plugin image:
```text
docker build -t itsblue.dev/plugins/github-workflow-controller -f docker/Dockerfile .
```
# Testing
Execute the plugin from your current working directory:
```text
docker run --rm -e PLUGIN_PARAM1=foo -e PLUGIN_PARAM2=bar \
-e PLUGIN_GITHUB_TOKEN=8f51ad7884c5eb69c11d260a31da7a745e6b78e2 \
-e PLUGIN_GITHUB_REPO=foo/bar \
-e PLUGIN_WORKFLOW_ID="workflow.yml" \
-e PLUGIN_WORKFLOW_ACTIONS="cancel,delete" \
itsblue.dev/plugins/github-workflow-controller
```