packages feed

hurl-workbench-cli-0.1.0.0: examples/multi-service/rei/hurl-workbench.dhall

let S = ../../../schema/package.dhall
let p = \(name : Text) -> \(env : Text) -> S.Parameter::{ name = name, environment = Some env }
let b = \(variable : Text) -> \(parameter : Text) -> S.EnvironmentBinding::{ variable = variable, parameter = parameter }
let command = \(role : Text) -> S.CommandSpec::{ executable = "/usr/bin/env", arguments = [ "python3", "launch.py", role ], environmentPolicy = S.EnvironmentPolicy.Clean [ "PATH" ], environment = [ b "EVIDENCE" "evidence", b "VARIANT" "variant", b "DB" "database", b "TOKEN" "token", b "API" "api", b "REI" "rei", b "API_PORT" "apiPort", b "STUB_PORT" "stubPort" ] }
let http = \(url : Text) -> S.Readiness.Http S.HttpReadiness::{ url = url, intervalMilliseconds = 20, timeoutSeconds = 20 }
in S.Workspace::{ schemaVersion = 1
, parameters = [ p "evidence" "HURL_WORKBENCH_CONSUMER_EVIDENCE_DIR", p "variant" "HURL_WORKBENCH_CONSUMER_VARIANT", p "api" "REI_LIFECYCLE_API", p "rei" "REI_LIFECYCLE_CLI", p "apiPort" "REI_LIFECYCLE_API_PORT", p "stubPort" "REI_LIFECYCLE_STUB_PORT", p "topic" "REI_LIFECYCLE_TOPIC", S.Parameter::{ name = "database", kind = S.ParameterKind.Secret, environment = Some "REI_LIFECYCLE_DB" }, S.Parameter::{ name = "token", kind = S.ParameterKind.Secret, environment = Some "REI_LIFECYCLE_TOKEN" } ]
, fragments = [ S.Fragment::{ name = "submit", path = "submit.hurl" }, S.Fragment::{ name = "after", path = "after.hurl" } ]
, workflows = [ S.Workflow::{ name = "submit", fragments = [ "submit" ], parameters = [ "stubPort", "topic", "variant", "token" ] }, S.Workflow::{ name = "after", fragments = [ "after" ], parameters = [ "stubPort" ] } ]
, recipes = [ S.Recipe::{ name = "submit", workflow = "submit", safety = S.Safety.Mutating }, S.Recipe::{ name = "after", workflow = "after", safety = S.Safety.ReadOnly } ]
, services = [ S.Service::{ name = "stub", command = command "stub", readiness = http "http://127.0.0.1:{{stubPort}}/health", shutdownTimeoutSeconds = 8 }, S.Service::{ name = "api", command = command "api", readiness = http "http://127.0.0.1:{{apiPort}}/health/ready", shutdownTimeoutSeconds = 8 }, S.Service::{ name = "worker", command = command "worker", readiness = S.Readiness.Command S.CommandReadiness::{ command = command "probe-worker", intervalMilliseconds = 20, timeoutSeconds = 3 }, shutdownTimeoutSeconds = 8 } ]
, suites = [ S.Suite::{ name = "production", services = [ "stub", "api", "worker" ], setup = [ command "setup" ], teardown = [ command "teardown" ], runs = [ S.RunReference.Recipe "submit", S.RunReference.Service (S.ServiceStep.Restart "worker"), S.RunReference.Recipe "after" ] } ] }