71 lines
2.5 KiB
Forth
71 lines
2.5 KiB
Forth
namespace WoofWorkflows
|
|
|
|
open System.IO
|
|
|
|
module Program =
|
|
let foo () =
|
|
pipeline (Comp.make "some-image") {
|
|
workingDir (Comp.make (DirectoryInfo "code root here"))
|
|
labelled "label 1"
|
|
withEnv ("foo", Comp.make "bar")
|
|
withEnv ("hi", Comp.make "bye")
|
|
let! (Stdout stdout) = "sh script here"
|
|
|
|
do!
|
|
pipelineSameAgent {
|
|
withEnv ("foo", stdout)
|
|
do! "git config --foo"
|
|
return ()
|
|
}
|
|
|
|
do!
|
|
pipeline (Comp.make "another-image") {
|
|
labelled "label 2"
|
|
let! (Stdout stdout) = "maybe run a formatter"
|
|
return ()
|
|
}
|
|
|
|
do! "a shell script"
|
|
let! (Stdout stdout) = "another shell script"
|
|
return ()
|
|
}
|
|
|
|
let foo2 () =
|
|
let pl =
|
|
Pipeline.bindShellScript
|
|
"sh script here"
|
|
(fun (Stdout stdout) ->
|
|
Pipeline.concat
|
|
[
|
|
let modifier = PipelineModifier.empty None |> PipelineModifier.withEnv "foo" stdout
|
|
let pl = Pipeline.empty |> Pipeline.prependShellScript "git config --foo"
|
|
yield pl, modifier
|
|
|
|
let modifier =
|
|
PipelineModifier.empty (Some (Comp.make "another-image"))
|
|
|> PipelineModifier.addLabel "label 2"
|
|
|
|
let pl = Pipeline.bindShellScript "maybe run a formatter" (fun _ -> Pipeline.empty)
|
|
yield pl, modifier
|
|
|
|
let modifier = PipelineModifier.empty None
|
|
let pl = Pipeline.prependShellScript "a shell script" Pipeline.empty
|
|
yield pl, modifier
|
|
]
|
|
(Pipeline.bindShellScript "another shell script" (fun (Stdout stdout) -> Pipeline.empty))
|
|
)
|
|
|
|
let modifier =
|
|
PipelineModifier.empty (Some (Comp.make "some-image"))
|
|
|> PipelineModifier.replaceWorkingDir (Comp.make (DirectoryInfo "code root here"))
|
|
|> PipelineModifier.addLabel "label 1"
|
|
|> PipelineModifier.withEnv "foo" (Comp.make "bar")
|
|
|> PipelineModifier.withEnv "hi" (Comp.make "bye")
|
|
|
|
pl, modifier
|
|
|
|
[<EntryPoint>]
|
|
let main argv =
|
|
foo2 () |> Pipeline.toStepDag |> ignore
|
|
0
|