6.0.0 • Published 4 months ago
screwdriver-workflow-parser v6.0.0
Workflow Parser
Parses and converts pipeline configuration into a workflow graph
Usage
npm install screwdriver-workflow-parser
const { getWorkflow, getNextJobs, hasCycle } = require('screwdriver-workflow-parser');
// Calculate the directed graph workflow from a pipeline config (and parse legacy workflows)
const workflowGraph = getWorkflow(pipelineConfig, { useLegacy: true });
/*
{
nodes: [{ name: '~pr'}, { name: '~commit'}, { name: 'main' }],
edges: [{ src: '~pr', dest: 'main'}, { src: '~commit', dest: 'main'}]
}
*/
// Get a list of job names to start as a result of a commit event, e.g. [ 'a', 'b' ]
const commitJobsToTrigger = getNextJobs(workflowGraph, { trigger: '~commit' });
// Get a list of job names to start as a result of a pull-request event, e.g. [ 'PR-123:a' ]
const prJobsToTrigger = getNextJobs(workflowGraph, { trigger: '~pr', prNum: 123 });
// Check to see if a given workflow graph has a loop in it. A -> B -> A
if (hasCycle(workflowGraph)) {
console.error('Graph contains a loop.');
}
Testing
npm test
License
Code licensed under the BSD 3-Clause license. See LICENSE file for terms.
6.0.0
4 months ago
5.0.1
8 months ago
5.0.0
10 months ago
4.4.1
10 months ago
4.4.0
11 months ago
4.3.0
1 year ago
4.2.1
1 year ago
4.2.0
1 year ago
4.1.3
1 year ago
4.1.2
1 year ago
4.1.1
2 years ago
4.1.0
2 years ago
4.0.0
3 years ago
3.2.1
3 years ago
3.2.0
4 years ago
3.1.3
4 years ago
3.1.2
5 years ago
3.1.1
5 years ago
3.1.0
5 years ago
3.0.0
5 years ago
2.0.3
5 years ago
2.0.2
5 years ago
2.0.1
5 years ago
2.0.0
6 years ago
1.8.9
6 years ago
1.8.8
6 years ago
1.8.7
6 years ago
1.8.6
6 years ago
1.8.5
6 years ago
1.8.4
6 years ago
1.8.3
6 years ago
1.8.2
6 years ago
1.8.1
6 years ago
1.8.0
6 years ago
1.7.0
7 years ago
1.6.1
7 years ago
1.6.0
7 years ago
1.5.0
7 years ago
1.4.2
7 years ago
1.4.1
7 years ago
1.4.0
8 years ago
1.3.0
8 years ago
1.2.1
8 years ago
1.2.0
8 years ago
1.1.1
8 years ago
1.1.0
8 years ago
1.0.0
8 years ago
0.0.1
8 years ago