Skip to content

screwdriver-cd/config-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b71336a · Feb 8, 2022
Feb 8, 2022
Feb 8, 2022
Jun 27, 2016
Jun 27, 2016
Jun 17, 2019
Oct 29, 2016
Dec 15, 2016
Jun 27, 2016
Dec 3, 2020
Jul 9, 2021
Dec 3, 2020
Feb 8, 2022
Jun 22, 2021

Repository files navigation

Screwdriver.yaml Configuration Parser

Version Downloads Build Status Open Issues License

Node module for validating and parsing screwdriver.yaml configurations

  • Validates a screwdriver.yaml for structural and functional specification
  • Outputs the pipeline's workflowGraph configuration
  • Generates a list of jobs to execute, including:
    • build permutations
    • environment variables to set
    • steps to execute
    • container image to use

YAML

shared:
    environment:
        NODE_ENV: test
    settings:
        email: [email protected]

jobs:
    main:
        image: node:6
        steps:
            - init: npm install
            - test: npm test
        requires:
            - ~pr
            - ~commit

    publish:
        environment:
            NODE_TAG: latest
        image: node:4
        steps:
            - bump: npm run bump
            - publish: npm publish --tag $NODE_TAG
            - tag: git push origin --tags
        secrets:
            - NPM_TOKEN
            - GIT_KEY
        requires:
            - main

Usage

npm install screwdriver-config-parser

Parse in Node.js:

const parser = require('screwdriver-config-parser');

// Configuration (in YAML form)
parser(fs.readFileSync('screwdriver.yaml')).then((pipeline) => {
    // Workflow for the pipeline
    // pipeline.workflowGraph

    // All the main jobs with the steps to execute and environment variables to set
    // pipeline.jobs.main[].commands
    // pipeline.jobs.main[].environment
    // pipeline.jobs.main[].image

    // All the publish jobs with the steps to execute and environment variables to set
    // pipeline.jobs.publish[].commands
    // pipeline.jobs.publish[].environment
    // pipeline.jobs.publish[].image
});

Testing

npm test

License

Code licensed under the BSD 3-Clause license. See LICENSE file for terms.