Node module for parsing screwdriver.yaml configurations
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib/phase
test
.eslintignore
.eslintrc.yaml
.gitignore
.npmignore
CONTRIBUTING.md
LICENSE
README.md
index.js
package.json
screwdriver.yaml

README.md

Screwdriver.yaml Configuration Parser

Version Downloads Build Status Open Issues Dependency Status 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: foo@bar.com

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.