Skip to content

YAML Export Formats

This page documents how pipel8ne maps its pipeline model to each supported CI/CD format.

GitHub Actions

Output file: .github/workflows/<pipeline-name>.yml

Mapping

pipel8ne conceptGitHub Actions concept
PipelineWorkflow
Trigger (push)on.push
Trigger (pull_request)on.pull_request
Trigger (schedule)on.schedule[].cron
Trigger (tag)on.push.tags
StageGroup of jobs sharing a needs: dependency
Jobjobs.<job-id>
Job.runsOnjobs.<job-id>.runs-on
Stage dependencyjobs.<job-id>.needs: [<upstream-job>]
Step (shell_command)jobs.<job-id>.steps[].run
Step (git checkout)jobs.<job-id>.steps[].uses: actions/checkout@v4
Credential reference${ { secrets.SECRET_NAME } }

Example

yaml
name: ci
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm test

  build:
    runs-on: ubuntu-latest
    needs: [test]
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run build

GitLab CI

Output file: .gitlab-ci.yml (repository root)

Mapping

pipel8ne conceptGitLab CI concept
PipelinePipeline
Trigger (push)workflow.rules + $CI_COMMIT_BRANCH
Trigger (schedule)GitLab CI schedules (configured in GitLab UI)
Trigger (tag)rules + $CI_COMMIT_TAG
Stagestages[] entry
JobJob definition at root level
Job.runsOntags: (for self-hosted) or default runner
Stage dependencystage: <stage-name> + needs:
Step (shell_command)script: block
Credential reference$SECRET_NAME (from CI/CD Variables)

Example

yaml
stages:
  - test
  - build

test:
  stage: test
  image: node:20
  script:
    - npm ci
    - npm test

build:
  stage: build
  image: node:20
  needs: [test]
  script:
    - npm ci
    - npm run build
  artifacts:
    paths:
      - dist/

Azure DevOps

Output file: azure-pipelines.yml (repository root, or path configured in the pipeline settings)

Mapping

pipel8ne conceptAzure DevOps concept
PipelinePipeline
Trigger (push)trigger.branches.include
Trigger (pull_request)pr.branches.include
Trigger (schedule)schedules[]
Trigger (tag)trigger.tags.include
Stagestages[].stage
Jobstages[].jobs[].job
Job.runsOnpool.vmImage
Stage dependencydependsOn:
Step (shell_command)steps[].script
Credential reference$(SECRET_NAME) (from Variable Groups)

Example

yaml
trigger:
  branches:
    include:
      - main

stages:
  - stage: Test
    jobs:
      - job: test
        pool:
          vmImage: ubuntu-latest
        steps:
          - script: npm ci
            displayName: Install dependencies
          - script: npm test
            displayName: Run tests

  - stage: Build
    dependsOn: Test
    jobs:
      - job: build
        pool:
          vmImage: ubuntu-latest
        steps:
          - script: npm ci
          - script: npm run build
            displayName: Build

Limitations

The following features may require manual edits to the exported YAML:

FeatureNotes
Matrix buildsNot supported in the visual editor — add manually
Reusable workflows / templatesPlatform-specific; add uses: steps manually
Conditional steps (if:)Add conditions manually after export
Artifact upload/downloadUse platform-specific actions (e.g. actions/upload-artifact@v4)
Service containersAdd manually under services:
CachesAdd platform-specific cache actions manually

Released under the MIT License.