Project113

CI/CD Configuration

CI/CD pipelines are defined using YAML configuration files in your repository. Project113's CI/CD system is powered by a modified Woodpecker instance, so the Woodpecker documentation may also be a useful reference for pipeline configuration.

Configuration File

You can define your pipeline in one of two ways:

  • Single file — Create a .project113.yml file in the root of your repository.
  • Directory — Create a .project113/ directory containing multiple YAML files that are combined into a single pipeline definition.

Basic Structure

steps:
  build:
    image: node:20
    commands:
      - npm install
      - npm run build

  test:
    image: node:20
    commands:
      - npm test

Steps

Each step in the pipeline runs in its own container. Steps are executed in the order they are defined. If a step fails, subsequent steps are skipped unless configured otherwise.

Triggers

By default, steps run on push events and change request updates. You can restrict a step or workflow with a when block:

steps:
  build:
    image: node:20
    commands:
      - npm run build
    when:
      branch:
        - master
        - release/*
      event:
        - push
        - pull_request

Environment Variables

Define environment variables for a step using the environment block:

steps:
  build:
    image: node:20
    environment:
      NODE_ENV: production
    commands:
      - echo $NODE_ENV