Source
yaml
id: ci-cd-for-kestra-flows
namespace: company.team
tasks:
- id: deploy
type: io.kestra.plugin.core.flow.WorkingDirectory
tasks:
- id: cloneRepository
type: io.kestra.plugin.git.Clone
url: https://github.com/anna-geller/kestra-ci-cd
branch: main
- id: validate_flows
type: io.kestra.plugin.scripts.shell.Commands
taskRunner:
type: io.kestra.plugin.core.runner.Process
commands:
- /app/kestra flow validate flows/
- id: deploy_flows
type: io.kestra.plugin.scripts.shell.Commands
taskRunner:
type: io.kestra.plugin.core.runner.Process
commands:
- /app/kestra flow namespace update prod flows/prod/ --no-delete
- /app/kestra flow namespace update prod.marketing
flows/prod.marketing/ --no-delete
triggers:
- id: github
type: io.kestra.plugin.core.trigger.Webhook
key: 1KERKzRQZSMtLdMdNI7Nkr
About this blueprint
Trigger DevOps Git Task Runner
This blueprint demonstrates how to use Kestra to build a CI/CD pipeline.
This flow:
- deploys other flows effectively running a CI/CD pipeline for Kestra flows directly from Kestra itself
- clones a GitHub repository, validates the flows, and then deploys them to a given Kestra namespace
- uses a webhook trigger so that the flow can be triggered upon GitHub push event sent by a GitHub webhook.
To learn more about this CI/CD pattern, check the following documentation page and blog post.