@jameslnewell/buildkite-pipelines
TypeScript icon, indicating that this package has built-in type declarations

3.19.0 • Public • Published

@jameslnewell/buildkite-pipelines

Generate Buildkite pipelines from code.

CI/CD

Installation

NPM:

npm install @jameslnewell/buildkite-pipelines

Yarn:

yarn add --dev @jameslnewell/buildkite-pipelines

Usage

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

Transpiling Typescript

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

Why?

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

Related projects

Development

  1. Setup a pipeline - use the command for setting up a docker agent here

Readme

Keywords

Package Sidebar

Install

npm i @jameslnewell/buildkite-pipelines

Weekly Downloads

2,640

Version

3.19.0

License

MIT

Unpacked Size

450 kB

Total Files

174

Last publish

Collaborators

  • jameslnewell