Configuration
Pipeline uses YAML format configuration files to define workflows. This document details the configuration file format and options.
Basic Structure
yaml
name: Pipeline Name # Required: Pipeline name
workdir: /tmp/my-pipeline # Optional: Working directory, default current directory
image: alpine:latest # Optional: Default Docker image
timeout: 3600 # Optional: Timeout in seconds, default 86400
environment: # Optional: Environment variables
KEY1: value1
KEY2: value2
pre: echo "pre hook" # Optional: Pre hook
post: echo "post hook" # Optional: Post hook
stages: # Required: Stage list
- name: stage1
jobs:
- name: job1
steps:
- name: step1
command: echo "step1"Configuration Inheritance
Configuration is inherited in the following hierarchy: Pipeline → Stage → Job → Step
Each level inherits configuration from its parent, with child-level configuration taking higher priority.
Inheritable Configuration Items
- Working Directory (
workdir): Pipeline → Stage → Job → Step - Docker Image (
image): Pipeline → Stage → Job → Step - Timeout (
timeout): Pipeline → Stage → Job → Step - Environment Variables (
environment): Pipeline → Stage → Job → Step - Image Registry Configuration (
image_registry,image_registry_username,image_registry_password): Job → Step
More Examples
See example files in the examples/ directory:
basic.yml: Basic exampledocker.yaml: Docker build examplegithub.yaml: GitHub Actions style exampleplugin.yml: Plugin usage examplelanguage.yml: Language runtime examplestep-engine-ssh.yaml: SSH engine examplestep-service-docker-compose.yaml: Service orchestration example
