CI/CD reference
The CI/CD configuration is set up for a particular repository and stored in a file named .sourcecraft/ci.yaml.
General format of the .sourcecraft/ci.yaml configuration file:
on:
pull_request:
- workflows: [<list_of_workflows>]
filter:
source_branches: [<list_of_source_branches>]
target_branches: [<list_of_target_branches>]
paths: [<list_of_paths>]
push:
- workflows: [<list_of_workflows>]
filter:
branches: [<list_of_branches>]
paths: [<list_of_paths>]
- workflows: [<list_of_workflows>]
filter:
tags: [<list_of_tags>]
schedule:
- workflows: [<list_of_workflows>]
interval: <execution_interval_in_hours_or_minutes>
description: <random description>
- workflows: [<list_of_workflows>]
cron: "<cron_expression>"
description: <random description>
workflows:
<workflow_name>:
tasks:
- name: <task_name>
cubes:
- name: <cube_name>
image: <Docker_image_path>
script:
- <executed_script>
...
The configuration may include the following elements:
- Trigger events (
onsection) - Workflows (
workflowssection) - Jobs (
taskssection) - Cubes (
cubessection) - Service connections (
tokenssection) - Environment variables (
envsection)
Tip
The .sourcecraft/ci.yaml file supports file structure output as well as search for declarations and element usages. For more information, see Navigating and searching by code in SourceCraft.
You can either use nested structure for configuration elements or mark them up as separate sections.
Example of CI/CD configuration marked up as separate sections
on:
pull_request:
- workflows: my-test-workflow
filter:
source_branches: ["**", "!test**"]
target_branches: "main"
workflows:
my-test-workflow:
tasks:
- my-test-task
tasks:
- name: my-test-task
cubes:
- name: my-test-cube
uses: hello-cube
cubes:
- name: hello-cube
script:
- echo "Hello, world!"
The configuration file supports secrets. For details, see Using the value of a secret in CI/CD.
See also
- Repository templates
- Continuous integration and continuous deployment in SourceCraft
- Configuring CI/CD in a SourceCraft repository
- Configuring CI/CD with Yandex Cloud Functions
- Predefined environment variables
- Providing environment variables from one cube to another
- Self-hosted worker tags in SourceCraft