Skip to content

Conversation

@noxify
Copy link
Owner

@noxify noxify commented Dec 18, 2025

Summary

Adds comprehensive support for GitLab CI child pipelines with a callback-based API, visualization, and multi-file output.

Features

Child Pipeline API

config.childPipeline("trigger:deploy", (child) => {
  child.job("deploy:prod", { stage: "deploy", script: ["./deploy.sh"] })
  return child
}, { outputPath: "ci/deploy-pipeline.yml", strategy: "depend" })

await config.writeYamlFiles(".") // Writes parent + all child pipelines

New Methods

  • childPipeline(jobName, callback, options?) - Define child pipelines programmatically
  • writeYamlFiles(outputDir, options?) - Write all YAML files at once
  • getChildPipeline(jobName) - Access tracked child pipeline configs

Visualization

  • Child pipelines appear in Mermaid diagrams (as subgraphs), ASCII trees (with 🔀), and stage tables
  • Works without filesystem access using tracked configs

Technical Improvements

  • Replace dynamic imports with static imports (better tree-shaking)
  • Add TrackedChildPipeline interface (no more any types)
  • Fix MSW warnings with proper request handlers
  • Extend memfs mocks for fs/promises

Use Cases

  • Dynamic job generation from JSON/database
  • Multi-environment deployments with separate child pipelines
  • Security scanning with per-application jobs
  • Monorepo workflows

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 18, 2025

Open in StackBlitz

npm i https://pkg.pr.new/noxify/gitlab-ci-builder/@noxify/gitlab-ci-builder@19

commit: f8247d8

@noxify noxify merged commit b6d0966 into main Dec 18, 2025
6 checks passed
@noxify noxify deleted the child-pipelines branch December 18, 2025 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants