@jameslnewell/buildkite-pipelines
    Preparing search index...

    @jameslnewell/buildkite-pipelines

    @jameslnewell/buildkite-pipelines

    Generate Buildkite pipelines from code.

    CI/CD

    NPM:

    npm install @jameslnewell/buildkite-pipelines
    

    Yarn:

    yarn add --dev @jameslnewell/buildkite-pipelines
    

    Define your pipeline in code.

    ./.buildkite/pipeline.js

    const {Pipeline, CommandStep} = require('@jameslnewell/buildkite-pipelines');

    module.exports = new Pipeline().addStep(
    new CommandStep().setLabel('👋 Greeting').addCommand('echo "Hello World!"'),
    );

    Generate and upload your pipeline in a Buildkite step.

    ./.buildkite/pipeline.yml

    steps:
    - commands:
    - buildkite-pipelines ./.buildkite/pipeline.js | buildkite-agent pipeline upload
    plugins:
    - docker#v3.11.0:
    image: jameslnewell/buildkite-pipelines

    Define your pipeline in code.

    ./.buildkite/pipeline.ts

    import {Pipeline, CommandStep} from '@jameslnewell/buildkite-pipelines';

    export default new Pipeline().addStep(
    new CommandStep().setLabel('👋 Greeting').addCommand('echo "Hello World!"'),
    );

    Generate and upload your pipeline in a Buildkite step.

    ./.buildkite/pipeline.yml

    steps:
    - commands:
    - yarn global add ts-node
    - buildkite-pipelines -r ts-node/register ./.buildkite/pipeline.ts | buildkite-agent pipeline upload
    plugins:
    - docker#v3.11.0:
    image: jameslnewell/buildkite-pipelines

    This library is a very thin wrapper around Buildkite's yaml syntax for defining a pipeline. As such the value of this library is unlikely to be realised for simple one-file pipelines.

    Consider using this library when:

    • you're dynamically generating the pipeline and you require a programming language
    • your pipeline is split across multiple yaml files and you're unable to use yaml anchors and aliases for composition across them
    • you can't possibly live without typings
    1. Setup a pipeline - use the command for setting up a docker agent here