Vapora/config/workflows.ncl

154 lines
3.6 KiB
Text
Raw Normal View History

let C = import "../nickel/workflows/contracts.ncl" in
{
engine | C.EngineConfig = {
max_parallel_tasks = 10,
workflow_timeout = 3600,
approval_gates_enabled = true,
},
workflows = [
{
name = "feature_development",
trigger = "manual",
stages | Array C.StageConfig = [
{
name = "architecture_design",
agents = ["architect"],
parallel = false,
approval_required = false,
},
{
name = "implementation",
agents = ["developer", "developer"],
parallel = true,
max_parallel = 2,
approval_required = false,
},
{
name = "testing",
agents = ["tester"],
parallel = false,
approval_required = false,
},
{
name = "code_review",
agents = ["reviewer"],
parallel = false,
approval_required = true,
},
{
name = "deployment",
agents = ["devops"],
parallel = false,
approval_required = true,
},
],
notifications = {
on_completed = [],
on_failed = [],
on_approval_required = [],
},
},
{
name = "bugfix",
trigger = "manual",
stages | Array C.StageConfig = [
{
name = "investigation",
agents = ["developer"],
parallel = false,
approval_required = false,
},
{
name = "fix_implementation",
agents = ["developer"],
parallel = false,
approval_required = false,
},
{
name = "testing",
agents = ["tester"],
parallel = false,
approval_required = false,
},
{
name = "deployment",
agents = ["devops"],
parallel = false,
approval_required = false,
},
],
notifications = {
on_completed = [],
on_failed = [],
on_approval_required = [],
},
},
{
name = "documentation_update",
trigger = "manual",
stages | Array C.StageConfig = [
{
name = "content_creation",
agents = ["technical_writer"],
parallel = false,
approval_required = false,
},
{
name = "review",
agents = ["reviewer"],
parallel = false,
approval_required = true,
},
{
name = "publish",
agents = ["devops"],
parallel = false,
approval_required = false,
},
],
notifications = {
on_completed = [],
on_failed = [],
on_approval_required = [],
},
},
{
name = "security_audit",
trigger = "manual",
stages | Array C.StageConfig = [
{
name = "code_analysis",
agents = ["security_engineer"],
parallel = false,
approval_required = false,
},
{
name = "penetration_testing",
agents = ["security_engineer"],
parallel = false,
approval_required = false,
},
{
name = "remediation",
agents = ["developer"],
parallel = false,
approval_required = false,
},
{
name = "verification",
agents = ["security_engineer"],
parallel = false,
approval_required = true,
},
],
notifications = {
on_completed = [],
on_failed = [],
on_approval_required = [],
},
},
],
}