dhall-fly 0.2.4 → 0.3.0
raw patch · 36 files changed
+398/−129 lines, 36 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Fly.Types: SetPipeline :: SetPipelineStep -> StepHooks -> Step
+ Fly.Types: SetPipelineStep :: Text -> Text -> Maybe (HashMap Text Value) -> Maybe [Text] -> Maybe [Text] -> Maybe Text -> Maybe Natural -> SetPipelineStep
+ Fly.Types: [spAttempts] :: SetPipelineStep -> Maybe Natural
+ Fly.Types: [spFile] :: SetPipelineStep -> Text
+ Fly.Types: [spSetPipeline] :: SetPipelineStep -> Text
+ Fly.Types: [spTags] :: SetPipelineStep -> Maybe [Text]
+ Fly.Types: [spTimeout] :: SetPipelineStep -> Maybe Text
+ Fly.Types: [spVarFiles] :: SetPipelineStep -> Maybe [Text]
+ Fly.Types: [spVars] :: SetPipelineStep -> Maybe (HashMap Text Value)
+ Fly.Types: [stepSetPipeline] :: Step -> SetPipelineStep
+ Fly.Types: data SetPipelineStep
+ Fly.Types: instance Data.Aeson.Types.ToJSON.ToJSON Fly.Types.SetPipelineStep
+ Fly.Types: instance Dhall.FromDhall Fly.Types.SetPipelineStep
+ Fly.Types: instance GHC.Classes.Eq Fly.Types.SetPipelineStep
+ Fly.Types: instance GHC.Generics.Generic Fly.Types.SetPipelineStep
+ Fly.Types: instance GHC.Show.Show Fly.Types.SetPipelineStep
Files
- ChangeLog.md +22/−9
- dhall-concourse/README.md +2/−2
- dhall-concourse/defaults/SetPipelineStep.dhall +6/−0
- dhall-concourse/defaults/package.dhall +4/−1
- dhall-concourse/extractors/package.dhall +1/−1
- dhall-concourse/extractors/resourcesFromJobs.dhall +14/−3
- dhall-concourse/helpers/addHooks.dhall +4/−0
- dhall-concourse/helpers/addTags.dhall +103/−0
- dhall-concourse/helpers/addTagsToResource.dhall +8/−0
- dhall-concourse/helpers/aggregateWithHooks.dhall +3/−12
- dhall-concourse/helpers/doWithHooks.dhall +3/−12
- dhall-concourse/helpers/getWithHooks.dhall +1/−5
- dhall-concourse/helpers/inParallelWithHooks.dhall +3/−32
- dhall-concourse/helpers/package.dhall +24/−15
- dhall-concourse/helpers/putWithHooks.dhall +1/−1
- dhall-concourse/helpers/setPipelineStep.dhall +10/−0
- dhall-concourse/helpers/setPipelineStepWithHooks.dhall +11/−0
- dhall-concourse/helpers/taskWithHooks.dhall +1/−1
- dhall-concourse/helpers/translateHooks.dhall +4/−4
- dhall-concourse/helpers/translateInParallelStep.dhall +26/−0
- dhall-concourse/helpers/translateSteps.dhall +13/−0
- dhall-concourse/helpers/tryWithHooks.dhall +3/−5
- dhall-concourse/package.dhall +6/−6
- dhall-concourse/render/package.dhall +5/−5
- dhall-concourse/render/setPipelineStep.dhall +20/−0
- dhall-concourse/render/step.dhall +6/−0
- dhall-concourse/schemas/SetPipelineStep.dhall +3/−0
- dhall-concourse/schemas/package.dhall +4/−1
- dhall-concourse/types/SetPipelineStep.dhall +8/−0
- dhall-concourse/types/StepConstructors.dhall +1/−0
- dhall-concourse/types/package.dhall +7/−4
- dhall-fly.cabal +13/−2
- src/Fly/Types.hs +23/−8
- src/Fly/Yaml.hs +1/−0
- test/Fly/TypesSpec.hs +28/−0
- test/data/set-pipeline-step.dhall +6/−0
ChangeLog.md view
@@ -1,24 +1,37 @@ # Changelog for dhall-fly +## 0.3.0++* Add support for `set_pipeline` step.++## 0.2.4++* Tighten bounds for dhall-json.++## 0.2.3++* Upgrade dhall to 1.29 and dhall-json to 1.6.1.+* Upgrade dhall-concourse to 0.6.0.+ ## 0.2.2 -* Upgrade dhall to 1.28 and dhall-json to 1.6+* Upgrade dhall to 1.28 and dhall-json to 1.6. ## 0.2.1 -* Groups retain the order they are in list of grouped jobs+* Groups retain the order they are in list of grouped jobs. ## 0.2.0 -* Tested with dhall-concourse 0.5.0-* Add `--file` command line option to render pipelines from files-* Add support for grouping jobs-* Fix: Add inputs to `PutSteps`-* Fix: Add tags, timeouts and attempts to `ToJSON` instance of `PutStep`-* Fix: Add vars, tags, timeouts and attempts to `TaskStep`+* Tested with dhall-concourse 0.5.0.+* Add `--file` command line option to render pipelines from files.+* Add support for grouping jobs.+* Fix: Add inputs to `PutSteps`.+* Fix: Add tags, timeouts and attempts to `ToJSON` instance of `PutStep`.+* Fix: Add vars, tags, timeouts and attempts to `TaskStep`. ## 0.1.0 -* Support for dhall-concourse 0.2.2+* Support for dhall-concourse 0.2.2. ## Unreleased changes
dhall-concourse/README.md view
@@ -26,7 +26,7 @@ ```dhall let Concourse = - https://raw.githubusercontent.com/akshaymankar/dhall-concourse/0.5.0/package.dhall+ https://raw.githubusercontent.com/akshaymankar/dhall-concourse/0.6.0/package.dhall let jobs = ./jobs.dhall @@ -47,7 +47,7 @@ ```dhall let Concourse = - https://raw.githubusercontent.com/akshaymankar/dhall-concourse/0.5.0/package.dhall+ https://raw.githubusercontent.com/akshaymankar/dhall-concourse/0.6.0/package.dhall let groupedJobs = ./grouped-jobs.dhall
+ dhall-concourse/defaults/SetPipelineStep.dhall view
@@ -0,0 +1,6 @@+{ vars = None ../types/JSONObject.dhall+, var_files = None (List Text)+, tags = None (List Text)+, timeout = None Text+, attempts = None Natural+}
dhall-concourse/defaults/package.dhall view
@@ -5,7 +5,7 @@ ./Resource.dhall sha256:6a42d337edb6bdd591871f41caa350eb67d8b5eab51b06a154b4973ae74b6dde ? ./Resource.dhall , Job =- ./Job.dhall sha256:0cb9ded91690e80d5411c742575c56b2b3a41c8c0c1ac0267992318e43df00e7+ ./Job.dhall sha256:3d949368be2ea96468cbf142e3529719d44225d3e9daab7ed779f7cd51de7368 ? ./Job.dhall , GetStep = ./GetStep.dhall sha256:cac33657ae7f42c625cbb33de707a5a1681d4b1f23e08c0a05c2cd0b440e7ce8@@ -34,4 +34,7 @@ , PutStep = ./PutStep.dhall sha256:4c1bbd2b0842d5f6f23dd1178a3f0e734f0b901cb4cfb4adb6e6c9d61cb1a39b ? ./PutStep.dhall+, SetPipelineStep =+ ./SetPipelineStep.dhall sha256:80b6b52b2ab1f2b7945bca6b02c9c9250846b6ca1441da32d2738987c3b50eef+ ? ./SetPipelineStep.dhall }
dhall-concourse/extractors/package.dhall view
@@ -1,5 +1,5 @@ { resourcesFromJobs =- ./resourcesFromJobs.dhall sha256:ebae6ead8ad17037884f99e10136782cf705f534eba9d41f06ed0d6db6e34ad0+ ./resourcesFromJobs.dhall sha256:eb61615a4847ebe2d5d9bf61d0288f088295fc845476050595e083db3b00fb2c ? ./resourcesFromJobs.dhall , resourceTypesFromResources = ./resourcesTypesFromResources.dhall sha256:b49098518c53809ff472643c55e94399dfa789f795e77089085dad673404f223
dhall-concourse/extractors/resourcesFromJobs.dhall view
@@ -15,7 +15,7 @@ catOptionals (List Resource) [ h.ensure, h.on_success, h.on_failure, h.on_abort ]- + in Prelude.List.concat Resource listOfListOfResources let resourcesFromGetStep@@ -36,6 +36,12 @@ → λ(h : StepHooks (List Resource)) → resourcesFromStepHooks h +let resourcesFromSetPipelineStep+ : Types.SetPipelineStep → StepHooks (List Resource) → List Resource+ = λ(_ : Types.SetPipelineStep)+ → λ(h : StepHooks (List Resource))+ → resourcesFromStepHooks h+ let resourcesFromAggregateOrDo : List (List Resource) → StepHooks (List Resource) → List Resource = λ(rs : List (List Resource))@@ -75,6 +81,7 @@ { get = resourcesFromGetStep , put = resourcesFromPutStep , task = resourcesFromTaskStep+ , set_pipeline = resourcesFromSetPipelineStep , aggregate = resourcesFromAggregateOrDo , do = resourcesFromAggregateOrDo , try = resourcesFromTry@@ -87,8 +94,12 @@ catOptionals Types.Step [ j.on_abort, j.on_failure, j.on_success, j.ensure ]- - in Prelude.List.concatMap Types.Step Resource resourcesFromStep (j.plan # hookSteps)++ in Prelude.List.concatMap+ Types.Step+ Resource+ resourcesFromStep+ (j.plan # hookSteps) in Prelude.List.concatMap Types.Job Resource resourcesFromJob : List Types.Job → List Resource
dhall-concourse/helpers/addHooks.dhall view
@@ -22,6 +22,10 @@ λ(t : Types.TaskStep) → λ(_ : StepHooks Step) → ./taskWithHooks.dhall t hooks+ , set_pipeline =+ λ(s : Types.SetPipelineStep)+ → λ(_ : StepHooks Step)+ → ./setPipelineStepWithHooks.dhall s hooks , aggregate = λ(steps : List Step) → λ(_ : StepHooks Step)
+ dhall-concourse/helpers/addTags.dhall view
@@ -0,0 +1,103 @@+let Prelude = ../lib/prelude.dhall++let Types = ../types/package.dhall++let Step = Types.Step++let StepConstructors = Types.StepConstructors++let translateHooks = ./translateHooks.dhall++let mergeTags+ : Optional (List Text) → List Text → Optional (List Text)+ = λ(origTags : Optional (List Text))+ → λ(newTags : List Text)+ → Some+ ( merge+ { None = newTags+ , Some =+ λ(tags : List Text)+ → Prelude.List.concat Text [ tags, newTags ]+ }+ origTags+ )++let addTagsToGet+ : List Text → Types.GetStep → Types.StepHooks Step → Step+ = λ(tags : List Text)+ → λ(g : Types.GetStep)+ → λ(h : Types.StepHooks Step)+ → λ(S : Type)+ → λ(c : StepConstructors S)+ → c.get+ ( g+ ⫽ { tags = mergeTags g.tags tags+ , resource = ./addTagsToResource.dhall tags g.resource+ }+ )+ (translateHooks S c h)++let addTagsToPut+ : List Text → Types.PutStep → Types.StepHooks Step → Step+ = λ(tags : List Text)+ → λ(p : Types.PutStep)+ → λ(h : Types.StepHooks Step)+ → λ(S : Type)+ → λ(c : StepConstructors S)+ → c.put+ ( p+ ⫽ { tags = mergeTags p.tags tags+ , resource = ./addTagsToResource.dhall tags p.resource+ }+ )+ (translateHooks S c h)++let addTagsToTask+ : List Text → Types.TaskStep → Types.StepHooks Step → Step+ = λ(tags : List Text)+ → λ(t : Types.TaskStep)+ → λ(h : Types.StepHooks Step)+ → λ(S : Type)+ → λ(c : StepConstructors S)+ → c.task (t ⫽ { tags = mergeTags t.tags tags }) (translateHooks S c h)++let addTagsToSetPipeline+ : List Text → Types.SetPipelineStep → Types.StepHooks Step → Step+ = λ(tags : List Text)+ → λ(s : Types.SetPipelineStep)+ → λ(h : Types.StepHooks Step)+ → λ(S : Type)+ → λ(c : StepConstructors S)+ → c.set_pipeline+ (s ⫽ { tags = mergeTags s.tags tags })+ (translateHooks S c h)++let addTagsToStep+ : List Text → Step → Step+ = λ(tags : List Text)+ → λ(s : Step)+ → s+ Step+ { get = addTagsToGet tags+ , put = addTagsToPut tags+ , task = addTagsToTask tags+ , set_pipeline = addTagsToSetPipeline tags+ , aggregate = ./aggregateWithHooks.dhall+ , do = ./doWithHooks.dhall+ , try = ./tryWithHooks.dhall+ , in_parallel = ./inParallelWithHooks.dhall+ }++let addTags+ : List Text → List Types.Job → List Types.Job+ = λ(tags : List Text)+ → Prelude.List.map+ Types.Job+ Types.Job+ ( λ(j : Types.Job)+ → j+ ⫽ { plan = Prelude.List.map Step Step (addTagsToStep tags) j.plan+ }+ )++in addTags
+ dhall-concourse/helpers/addTagsToResource.dhall view
@@ -0,0 +1,8 @@+ λ(tags : List Text)+→ λ(r : ../types/Resource.dhall)+→ r+ ⫽ { tags =+ merge+ { None = Some tags, Some = λ(ts : List Text) → Some (ts # tags) }+ r.tags+ }
dhall-concourse/helpers/aggregateWithHooks.dhall view
@@ -1,20 +1,11 @@ let Types = ../types/package.dhall -let Prelude = ../lib/prelude.dhall- in ( λ(steps : List Types.Step) → λ(hooks : Types.StepHooks Types.Step) → λ(Step : Type) → λ(constructors : Types.StepConstructors Step)- → let stepTypeFix =- Prelude.List.map- Types.Step- Step- (λ(s : Types.Step) → s Step constructors)- steps-- in constructors.aggregate- stepTypeFix- (./translateHooks.dhall hooks Step constructors)+ → constructors.aggregate+ (./translateSteps.dhall Step constructors steps)+ (./translateHooks.dhall Step constructors hooks) ) : List Types.Step → Types.StepHooks Types.Step → Types.Step
dhall-concourse/helpers/doWithHooks.dhall view
@@ -1,22 +1,13 @@ let Types = ../types/package.dhall -let Prelude = ../lib/prelude.dhall- let doStep : List Types.Step → Types.StepHooks Types.Step → Types.Step = λ(steps : List Types.Step) → λ(hooks : Types.StepHooks Types.Step) → λ(Step : Type) → λ(constructors : Types.StepConstructors Step)- → let stepTypeFix =- Prelude.List.map- Types.Step- Step- (λ(s : Types.Step) → s Step constructors)- steps-- in constructors.do- stepTypeFix- (./translateHooks.dhall hooks Step constructors)+ → constructors.do+ (./translateSteps.dhall Step constructors steps)+ (./translateHooks.dhall Step constructors hooks) in doStep
dhall-concourse/helpers/getWithHooks.dhall view
@@ -1,15 +1,11 @@ let Types = ../types/package.dhall -let Defaults = ../defaults/package.dhall--let Prelude = ../lib/prelude.dhall- in ( λ(getStep : Types.GetStep) → λ(hooks : Types.StepHooks Types.Step) → λ(Step : Type) → λ(constructors : Types.StepConstructors Step) → constructors.get getStep- (./translateHooks.dhall hooks Step constructors)+ (./translateHooks.dhall Step constructors hooks) ) : Types.GetStep → Types.StepHooks Types.Step → Types.Step
dhall-concourse/helpers/inParallelWithHooks.dhall view
@@ -1,42 +1,13 @@ let Types = ../types/package.dhall -let Prelude = ../lib/prelude.dhall--let typeFixSteps- : ∀(T : Type) → Types.StepConstructors T → List Types.Step → List T- = λ(T : Type)- → λ(constructors : Types.StepConstructors T)- → Prelude.List.map Types.Step T (λ(s : Types.Step) → s T constructors)--let typeFix- : ∀(T : Type)- → Types.StepConstructors T- → Types.InParallelStep Types.Step- → Types.InParallelStep T- = λ(T : Type)- → λ(constructors : Types.StepConstructors T)- → λ(parallel : Types.InParallelStep Types.Step)- → merge- { Steps =- λ(s : List Types.Step)- → (Types.InParallelStep T).Steps (typeFixSteps T constructors s)- , Config =- λ(cfg : Types.InParallelConfig Types.Step)- → (Types.InParallelStep T).Config- (cfg ⫽ { steps = typeFixSteps T constructors cfg.steps })- }- parallel- let inParallelWithHooks : Types.InParallelStep Types.Step → Types.StepHooks Types.Step → Types.Step = λ(parallelSteps : Types.InParallelStep Types.Step) → λ(hooks : Types.StepHooks Types.Step) → λ(Step : Type) → λ(constructors : Types.StepConstructors Step)- → let stepTypeFix = typeFix Step constructors parallelSteps-- in constructors.in_parallel- stepTypeFix- (./translateHooks.dhall hooks Step constructors)+ → constructors.in_parallel+ (./translateInParallelStep.dhall Step constructors parallelSteps)+ (./translateHooks.dhall Step constructors hooks) in inParallelWithHooks
dhall-concourse/helpers/package.dhall view
@@ -1,46 +1,55 @@ { taskStep =- ./taskStep.dhall sha256:70d9bca82912ffc2d670952657d8f54f5090ab7a1b3d87f136104bee11537359+ ./taskStep.dhall sha256:35f1f101a0e28a192330aadc36105db3f4e4de4a2376dcdc906ce66ede466027 ? ./taskStep.dhall , putStep =- ./putStep.dhall sha256:36cf1f3065db932e5cd52bc564b9ce0a4236a6713277dacb11119d497ff77196+ ./putStep.dhall sha256:0bdc86fff43404a8bd70f7f1b0a1a1c06ef06cc8cc6564b091eb94f62efd985b ? ./putStep.dhall , getStep =- ./getStep.dhall sha256:7fa4a6cc1b49f64d6420d1ba0de9cfac09f0f78fac782644043d99d59ad00ed1+ ./getStep.dhall sha256:44a9ad8aeddca12f390148e76d649e29607d1160e1984440a008e923b6e7cb1e ? ./getStep.dhall+, setPipelineStep =+ ./setPipelineStep.dhall sha256:d88e17fb0603e3464672ee22225828e5be3728955b57f9ce363fa32b39712e99+ ? ./setPipelineStep.dhall+, setPipelineStepWithHooks =+ ./setPipelineStepWithHooks.dhall sha256:042f8840304647a3041d03b116468248256a43867b81d1f5653814f725b69caa+ ? ./setPipelineStepWithHooks.dhall , aggregateStep =- ./aggregateStep.dhall sha256:4c63bc1b4c97b7a7496644ac35a848bce4673ae929ac7bce016d269a1df1d61c+ ./aggregateStep.dhall sha256:66bd981b354edb0491ad2563392b75f943778ad4cffa0de49d7dac0f351b6137 ? ./aggregateStep.dhall , inParallelStep =- ./inParallelStep.dhall sha256:16810a83749f2373df22b263004c7f462bbe744089cdba5749e241555339e2ec+ ./inParallelStep.dhall sha256:0d99e7f5466a08ea64980b150c99f63c65c09b22e4a859a4eff95ec0f86f459e ? ./inParallelStep.dhall , inParallelStepSimple =- ./inParallelStepSimple.dhall sha256:70d3023fb015584b5ed0d439e0a0aaa8cef6802733d85256cf571a8fbd5da8fd+ ./inParallelStepSimple.dhall sha256:3dd28a9566544d59482cdd9a8d29fa2617c47eab30f2027d90a966582340f266 ? ./inParallelStepSimple.dhall , doStep =- ./doStep.dhall sha256:8db65241db7e62a1eb2ba241c61491ca964f438dfc74708f696ec2475fb65b08+ ./doStep.dhall sha256:6939459a1703b9173c0cad95ab4f2c7e6b1c08856c74e16d70d4ac21be90d225 ? ./doStep.dhall , tryStep =- ./tryStep.dhall sha256:54675d2eef37e557d8208d86dd76162b9fd7d97e7c24b7f249ca20e9b39319eb+ ./tryStep.dhall sha256:3ff6d62d5444b1b0d8e0625cdf6ab784b8771e682d32615981fc50187c8d07d8 ? ./tryStep.dhall , getWithHooks =- ./getWithHooks.dhall sha256:955df86d3c2e47cc8ad716753daa601ab480e517ef95d5cc254e81bff26830f4+ ./getWithHooks.dhall sha256:814a97dd8f2a1b235cb78e5da23cde349d43c4c31e7685d6a186c1aff580f6fa ? ./getWithHooks.dhall , putWithHooks =- ./putWithHooks.dhall sha256:f371b5557998a9c6c8cc62931e5ed0f71f47e2446c61a66e06911d1c5b2890b5+ ./putWithHooks.dhall sha256:8d495a462244021cdab012cb09787a91a414b55a8b5c0ad064cacd5d0bdca1f1 ? ./putWithHooks.dhall , taskWithHooks =- ./taskWithHooks.dhall sha256:315fee6fb1194a7e9d65046f6c9b411b50ba5cc4648ce4ae83a90907aaac7b61+ ./taskWithHooks.dhall sha256:e7147cb3d5e60ac0354c72b787305517bec0f839b0fea98173bac08da4c2f541 ? ./taskWithHooks.dhall , inParallelWithHooks =- ./inParallelWithHooks.dhall sha256:165993bc29b1e5f1aa9b9be629b5ce443626cc1a481ff1af3a301ed492da0180+ ./inParallelWithHooks.dhall sha256:6c1dddcbdf64f8a8bfd002a56ebba422b5be5c2922099e5a297dd25b4bb54fb6 ? ./inParallelWithHooks.dhall , aggregateWithHooks =- ./aggregateWithHooks.dhall sha256:d1aa9c681ad69025596b888acc95ce81d1c5599de38441190499a19420e842a2+ ./aggregateWithHooks.dhall sha256:8b11ec6d240005c4707cc6920539731b4788a6dcf717d3f9679da3c8c93581ae ? ./aggregateWithHooks.dhall , doWithHooks =- ./doWithHooks.dhall sha256:540a12579021f3b597f34d7929f4e9686d66274ad542173e8334a2236b748e7c+ ./doWithHooks.dhall sha256:aa0aabe9c774a7f875f2b7f86ba732719b13c0ea00a7637a82b1e76526aa3c6a ? ./doWithHooks.dhall , tryWithHooks =- ./tryWithHooks.dhall sha256:b1808275879f924e73fd9c12393f04a9563c8f1a74743f5ac125d9849b912b0d+ ./tryWithHooks.dhall sha256:bbec9d446615e592d83a5f9340ebad2ac289bfcab56fa95338c7e45662a42f5d ? ./tryWithHooks.dhall+, addTags =+ ./addTags.dhall sha256:99644b3b9ba67a6febd9c5038cd3f0b19265ba95f6211569e941fc890db6ab95+ ? ./addTags.dhall }
dhall-concourse/helpers/putWithHooks.dhall view
@@ -6,6 +6,6 @@ → λ(constructors : Types.StepConstructors Step) → constructors.put putStep- (./translateHooks.dhall hooks Step constructors)+ (./translateHooks.dhall Step constructors hooks) ) : Types.PutStep → Types.StepHooks Types.Step → Types.Step
+ dhall-concourse/helpers/setPipelineStep.dhall view
@@ -0,0 +1,10 @@+let Types = ../types/package.dhall++let Defaults = ../defaults/package.dhall++let setPipelineStep+ : Types.SetPipelineStep → Types.Step+ = λ(s : Types.SetPipelineStep)+ → ./setPipelineStepWithHooks.dhall s (Defaults.StepHooks Types.Step)++in setPipelineStep
+ dhall-concourse/helpers/setPipelineStepWithHooks.dhall view
@@ -0,0 +1,11 @@+let Types = ../types/package.dhall++in ( λ(setPipelineStep : Types.SetPipelineStep)+ → λ(hooks : Types.StepHooks Types.Step)+ → λ(Step : Type)+ → λ(constructors : Types.StepConstructors Step)+ → constructors.set_pipeline+ setPipelineStep+ (./translateHooks.dhall Step constructors hooks )+ )+ : Types.SetPipelineStep → Types.StepHooks Types.Step → Types.Step
dhall-concourse/helpers/taskWithHooks.dhall view
@@ -6,6 +6,6 @@ → λ(constructors : Types.StepConstructors Step) → constructors.task taskStep- (./translateHooks.dhall hooks Step constructors)+ (./translateHooks.dhall Step constructors hooks) ) : Types.TaskStep → Types.StepHooks Types.Step → Types.Step
dhall-concourse/helpers/translateHooks.dhall view
@@ -3,13 +3,13 @@ let Prelude = ../lib/prelude.dhall let translateHooks- : Types.StepHooks Types.Step- → ∀(S : Type)+ : ∀(S : Type) → Types.StepConstructors S+ → Types.StepHooks Types.Step → Types.StepHooks S- = λ(hooks : Types.StepHooks Types.Step)- → λ(S : Type)+ = λ(S : Type) → λ(constructors : Types.StepConstructors S)+ → λ(hooks : Types.StepHooks Types.Step) → let translateOptionalStep = Prelude.Optional.map Types.Step
+ dhall-concourse/helpers/translateInParallelStep.dhall view
@@ -0,0 +1,26 @@+let Types = ../types/package.dhall++let translateInParallelStep+ : ∀(T : Type)+ → Types.StepConstructors T+ → Types.InParallelStep Types.Step+ → Types.InParallelStep T+ = λ(T : Type)+ → λ(constructors : Types.StepConstructors T)+ → λ(parallel : Types.InParallelStep Types.Step)+ → merge+ { Steps =+ λ(s : List Types.Step)+ → (Types.InParallelStep T).Steps+ (./translateSteps.dhall T constructors s)+ , Config =+ λ(cfg : Types.InParallelConfig Types.Step)+ → (Types.InParallelStep T).Config+ ( cfg+ ⫽ { steps = ./translateSteps.dhall T constructors cfg.steps+ }+ )+ }+ parallel++in translateInParallelStep
+ dhall-concourse/helpers/translateSteps.dhall view
@@ -0,0 +1,13 @@+let Step = ../types/Step.dhall++let StepConstructors = ../types/StepConstructors.dhall++let Prelude = ../lib/prelude.dhall++let translateSteps+ : ∀(S : Type) → StepConstructors S → List Step → List S+ = λ(S : Type)+ → λ(c : StepConstructors S)+ → Prelude.List.map Step S (λ(s : Step) → s S c)++in translateSteps
dhall-concourse/helpers/tryWithHooks.dhall view
@@ -6,10 +6,8 @@ → λ(hooks : Types.StepHooks Types.Step) → λ(Step : Type) → λ(constructors : Types.StepConstructors Step)- → let stepTypeFix = step Step constructors-- in constructors.try- stepTypeFix- (./translateHooks.dhall hooks Step constructors)+ → constructors.try+ (step Step constructors)+ (./translateHooks.dhall Step constructors hooks) in tryStep
dhall-concourse/package.dhall view
@@ -1,19 +1,19 @@ { Types =- ./types/package.dhall sha256:35d21e500af502817cf25857447ac8e847261b76055f2c23b43f76a6a953db0c+ ./types/package.dhall sha256:c9a1dca64d70a28b126825f3c049c3c7ce5b62de6944d1eea819bce5cdafa545 ? ./types/package.dhall , defaults =- ./defaults/package.dhall sha256:15e958705784a9fcb3c7637dac50ccf74be318db1ffc771af4d7ee9b5a3f2906+ ./defaults/package.dhall sha256:39713773aa3d6eccedfef9e30e3cb8692dbe79b48ebbbd4356715e4a8f388754 ? ./defaults/package.dhall , schemas =- ./schemas/package.dhall sha256:bf3838a202e3d5d7f5b764229b069423ec54d2c6a8ea1658a1036ad855750bbd+ ./schemas/package.dhall sha256:565be3e3f8c6edbe9918664f59720ea3efe64dcb89f62cebb413992386b195bd ? ./schemas/package.dhall , helpers =- ./helpers/package.dhall sha256:334d50f7b6248b79c2d9c944d49dd60cb5ccd6e2812f42a83d4282eb6cf9a299+ ./helpers/package.dhall sha256:35a321e7b48d31bab3413a29b48b1a730502854e3c63bda8985fae3adb3300f6 ? ./helpers/package.dhall , render =- ./render/package.dhall sha256:102ffaeffabf83db684c6c1ee9c30023ad080aea4a776328f6fd7d3a8d4b1309+ ./render/package.dhall sha256:a6e12d4c86b383901a5eb644f3775d26c107fdba02c4109f0d76089bb96b3af5 ? ./render/package.dhall , extractors =- ./extractors/package.dhall sha256:3113ce1ed76db6bcf9659492a578df9fda84d50054918046cce7991d59f99de0+ ./extractors/package.dhall sha256:2d2d6d2320996d4f925e6166b8ccda65698f44cafe46fbb76b7fee1655fa7085 ? ./extractors/package.dhall }
dhall-concourse/render/package.dhall view
@@ -1,11 +1,11 @@ { job =- ./job.dhall sha256:5217065836a89ca47153203adabc99d349599161c8285d5d05f6c1c0f99a4859+ ./job.dhall sha256:7eca0c1aed9e8dff844a0d621719200a6deb6322bfbeb239bc41048a7dd9c0e8 ? ./job.dhall , jobs =- ./jobs.dhall sha256:3bdb0bb378882b0fb44cbd135056e006e43710af3a5f79b769efe0d581c8aba8+ ./jobs.dhall sha256:b8c66082187c984b1548615eadd05600d881c473e9b765a806d8566928933f7e ? ./jobs.dhall , step =- ./step.dhall sha256:c757012cc0eb2a70123b59ea2c267a965d463e7b81af37834d5c85d3a1a5bfa7+ ./step.dhall sha256:b034355ac3e8f54fb5be5ddf79855a892745bb4a144db8bb33e3b1f0011fde7f ? ./step.dhall , resource = ./resource.dhall sha256:005e009978277d17d9a71478b1b52d52fd39bc58d51916f835745fe57938956e@@ -20,9 +20,9 @@ ./resourceTypes.dhall sha256:ff3410ebad054a9ad069fe5e6cdcdb22dc39c7e05d52804248899c91122121da ? ./resourceTypes.dhall , pipeline =- ./pipeline.dhall sha256:0e1cfa9889565ae06800da328b1b52e2e98b330857081ed44724d193ab206664+ ./pipeline.dhall sha256:733839e8878e71390663ee22fda86049e92e4717e458740cbacb983e2ec275cb ? ./pipeline.dhall , groupedJobs =- ./groupedJobs.dhall sha256:1786999645ddbe8a085374ec226b86f3befb0990578445279a96d3212b6c6ab7+ ./groupedJobs.dhall sha256:e21e5543ac6f7ee3d06877cda2a88cf6ba56632f406a0ce84b0a5302ff0378f6 ? ./groupedJobs.dhall }
+ dhall-concourse/render/setPipelineStep.dhall view
@@ -0,0 +1,20 @@+let Types = ../types/package.dhall++let RenderOptional = ./optionals/package.dhall++let JSON = (../lib/prelude.dhall).JSON++let render+ : Types.SetPipelineStep → Types.JSONObject+ = λ(s : Types.SetPipelineStep)+ → toMap+ { set_pipeline = JSON.string s.set_pipeline+ , file = JSON.string s.file+ , vars = RenderOptional.jsonObject s.vars+ , var_files = RenderOptional.lists.text s.var_files+ , tags = RenderOptional.lists.text s.tags+ , timeout = RenderOptional.text s.timeout+ , attempts = RenderOptional.natural s.attempts+ }++in render
dhall-concourse/render/step.dhall view
@@ -25,6 +25,11 @@ → λ(hooks : Types.StepHooks JSON.Type) → concatJSONs [ ./taskStep.dhall task, ./stepHooks.dhall hooks ] +let renderSetPipeline =+ λ(s : Types.SetPipelineStep)+ → λ(hooks : Types.StepHooks JSON.Type)+ → concatJSONs [ ./setPipelineStep.dhall s, ./stepHooks.dhall hooks ]+ let renderAggregate = λ(steps : List JSON.Type) → λ(hooks : Types.StepHooks JSON.Type)@@ -54,6 +59,7 @@ { get = renderGet , put = renderPut , task = renderTask+ , set_pipeline = renderSetPipeline , aggregate = renderAggregate , do = renderDo , try = renderTry
+ dhall-concourse/schemas/SetPipelineStep.dhall view
@@ -0,0 +1,3 @@+{ Type = ../types/SetPipelineStep.dhall+, default = ../defaults/SetPipelineStep.dhall+}
dhall-concourse/schemas/package.dhall view
@@ -5,7 +5,7 @@ ./Resource.dhall sha256:329c244c898ea59b34e2ee43b4d9f80a2ef4ceda1d18fcdb1ce9eeca117cfc04 ? ./Resource.dhall , Job =- ./Job.dhall sha256:3ba2590e72451a38a1b682be7eb33db63853cbeaaf0c00ba728b23d676e7ae93+ ./Job.dhall sha256:88ae8c7f60ae9614e933cb9b9d5cab4371fe280ccb5263fc777a2a8cfef9999b ? ./Job.dhall , GetStep = ./GetStep.dhall sha256:0dc6d75285f9908a6b37c21cf5e7b51c64fca19cb1995df9d4769b03791f53d0@@ -34,4 +34,7 @@ , PutStep = ./PutStep.dhall sha256:a492b698682efc43bdc74ca78358ef84affe33c78da494619e8997c058d0ae20 ? ./PutStep.dhall+, SetPipelineStep =+ ./SetPipelineStep.dhall sha256:0be03696f64c97a4ab5dd342836cc7df535e94246c47dc3bcd6c7fcc6adc0d52+ ? ./SetPipelineStep.dhall }
+ dhall-concourse/types/SetPipelineStep.dhall view
@@ -0,0 +1,8 @@+{ set_pipeline : Text+, file : Text+, vars : Optional ./JSONObject.dhall+, var_files : Optional (List Text)+, tags : Optional (List Text)+, timeout : Optional Text+, attempts : Optional Natural+}
dhall-concourse/types/StepConstructors.dhall view
@@ -4,6 +4,7 @@ → { get : ./GetStep.dhall → StepHooks Step → Step , put : ./PutStep.dhall → StepHooks Step → Step , task : ./TaskStep.dhall → StepHooks Step → Step+ , set_pipeline : ./SetPipelineStep.dhall -> StepHooks Step -> Step , aggregate : List Step → StepHooks Step → Step , in_parallel : ./InParallelStep.dhall Step → StepHooks Step → Step , do : List Step → StepHooks Step → Step
dhall-concourse/types/package.dhall view
@@ -17,7 +17,7 @@ ./InParallelStep.dhall sha256:92395de51f548251bc0caae8e3aadafba89e4ed6c743ea86c80b4651fa0cd678 ? ./InParallelStep.dhall , Job =- ./Job.dhall sha256:43160b9d85391d6bedbfcdcf94dca62d1e6ca208193263683842e50b73c3533b+ ./Job.dhall sha256:9e4477028b63bede14c381e715cd431415a82ec4202e224b404c29d49355a0dc ? ./Job.dhall , JobBuildLogRetention = ./JobBuildLogRetention.dhall sha256:130df5b466a3822ac49495046e68dc58b46b0366ac31f05520e44949010349b6@@ -35,10 +35,10 @@ ./ResourceType.dhall sha256:1a22b92783a4256b1c7d4e8ef1ae56641fce04c81bfd37ed4bba69904c5387ee ? ./ResourceType.dhall , Step =- ./Step.dhall sha256:bf53e03316c2c05527b27b63928d831cdd81dce2e6364fcf053f86b3b6441db4+ ./Step.dhall sha256:5c81d26cbc5be85ac48b5be409e73ff38b0dcc62d621db226ea62978efb4a8e8 ? ./Step.dhall , StepConstructors =- ./StepConstructors.dhall sha256:e5d7da6a39a2afb939a4f5f27ab2e4d7c7db6411c0887dd43ec8503af8f55c2b+ ./StepConstructors.dhall sha256:78dafdf71dcd01e35a6dc1bef8084da2a2df01845ee7f601dd67e78bf68b890c ? ./StepConstructors.dhall , StepHooks = ./StepHooks.dhall sha256:4894aa205d000a93f04b62b2dbceff77cdf3fcda634bcc2fa6d3777e10c2734a@@ -71,6 +71,9 @@ ./TextTextPair.dhall sha256:641845344ce6be001271e0052808b6c8ca10ce5939efefea3560c68c37538454 ? ./TextTextPair.dhall , GroupedJob =- ./GroupedJob.dhall sha256:87f4dc5e19cfedd2d5e9c095ac4e417ecaf30d108561abde96258c9b84442361+ ./GroupedJob.dhall sha256:1a764ce965e5b2b612b771d1850f8657d3f915be9f94ddce6bf5a87a026e7118 ? ./GroupedJob.dhall+, SetPipelineStep =+ ./SetPipelineStep.dhall sha256:2aa66aabecb1b2de52299cf48ba96e17acc19199270f30093fc0d5fcb80ae4d2+ ? ./SetPipelineStep.dhall }
dhall-fly.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: e04d051736062d08179c44e114d8bc118d4af358af4bc0d5aa26447afeaf61b0+-- hash: 569dd59e63217c55a18a334d1436e5dc07fa0900c982b1cdc90e61fb84d1c594 name: dhall-fly-version: 0.2.4+version: 0.3.0 synopsis: Translate concourse config from Dhall to YAML description: Please see the README on GitHub at <https://github.com/akshaymankar/dhall-fly#readme> category: Concourse, YAML, JSON, Dhall@@ -29,6 +29,7 @@ dhall-concourse/defaults/package.dhall dhall-concourse/defaults/PutStep.dhall dhall-concourse/defaults/Resource.dhall+ dhall-concourse/defaults/SetPipelineStep.dhall dhall-concourse/defaults/StepHooks.dhall dhall-concourse/defaults/TaskConfig.dhall dhall-concourse/defaults/TaskInput.dhall@@ -39,6 +40,8 @@ dhall-concourse/extractors/resourcesFromJobs.dhall dhall-concourse/extractors/resourcesTypesFromResources.dhall dhall-concourse/helpers/addHooks.dhall+ dhall-concourse/helpers/addTags.dhall+ dhall-concourse/helpers/addTagsToResource.dhall dhall-concourse/helpers/aggregateStep.dhall dhall-concourse/helpers/aggregateWithHooks.dhall dhall-concourse/helpers/doStep.dhall@@ -51,9 +54,13 @@ dhall-concourse/helpers/package.dhall dhall-concourse/helpers/putStep.dhall dhall-concourse/helpers/putWithHooks.dhall+ dhall-concourse/helpers/setPipelineStep.dhall+ dhall-concourse/helpers/setPipelineStepWithHooks.dhall dhall-concourse/helpers/taskStep.dhall dhall-concourse/helpers/taskWithHooks.dhall dhall-concourse/helpers/translateHooks.dhall+ dhall-concourse/helpers/translateInParallelStep.dhall+ dhall-concourse/helpers/translateSteps.dhall dhall-concourse/helpers/tryStep.dhall dhall-concourse/helpers/tryWithHooks.dhall dhall-concourse/lib/prelude.dhall@@ -85,6 +92,7 @@ dhall-concourse/render/resources.dhall dhall-concourse/render/resourceType.dhall dhall-concourse/render/resourceTypes.dhall+ dhall-concourse/render/setPipelineStep.dhall dhall-concourse/render/step.dhall dhall-concourse/render/stepHooks.dhall dhall-concourse/render/taskCache.dhall@@ -104,6 +112,7 @@ dhall-concourse/schemas/package.dhall dhall-concourse/schemas/PutStep.dhall dhall-concourse/schemas/Resource.dhall+ dhall-concourse/schemas/SetPipelineStep.dhall dhall-concourse/schemas/StepHooks.dhall dhall-concourse/schemas/TaskConfig.dhall dhall-concourse/schemas/TaskInput.dhall@@ -125,6 +134,7 @@ dhall-concourse/types/PutStep.dhall dhall-concourse/types/Resource.dhall dhall-concourse/types/ResourceType.dhall+ dhall-concourse/types/SetPipelineStep.dhall dhall-concourse/types/Step.dhall dhall-concourse/types/StepConstructors.dhall dhall-concourse/types/StepHooks.dhall@@ -143,6 +153,7 @@ test/data/in-built-resource-type.dhall test/data/put.dhall test/data/resource.dhall+ test/data/set-pipeline-step.dhall test/data/task-config.dhall test/data/task-step.dhall
src/Fly/Types.hs view
@@ -210,6 +210,17 @@ v -> error ("Expected " ++ show v ++ "to be Object") v -> error ("Expected " ++ show v ++ "to be Object") +data SetPipelineStep = SetPipelineStep { spSetPipeline :: Text+ , spFile :: Text+ , spVars :: Maybe (HashMap Text Value)+ , spVarFiles :: Maybe [Text]+ , spTags :: Maybe [Text]+ , spTimeout :: Maybe Text+ , spAttempts :: Maybe Natural+ }+ deriving (Show, Generic, Eq)+ deriving FromDhall via FromDhallWithPrefix SetPipelineStep+ data InParallelStep = InParallelSteps {ipSteps :: [Step]} | InParallelStepConfig {ipConfig :: InParallelConfig} deriving (Show, Generic, Eq)@@ -237,6 +248,7 @@ | Put { stepPut :: PutStep, stepHooks :: StepHooks } | Task { stepTask :: TaskStep, stepHooks :: StepHooks } | Aggregate { aggregatedSteps :: [Step], stepHooks :: StepHooks }+ | SetPipeline { stepSetPipeline :: SetPipelineStep, stepHooks :: StepHooks } | InParallel { stepInParallel :: InParallelStep, stepHooks :: StepHooks } | Do { doSteps :: [Step], stepHooks :: StepHooks } | Try { tryStep :: Step, stepHooks :: StepHooks }@@ -249,16 +261,17 @@ (Lam _ _ --Constructors c)) = extractStepFromConstructors c extract x = extractStepFromConstructors x -- While recursing, only the constructor applications are available- extractStepFromConstructors (App (App (Field (Var (V _ 0)) "get") s) hooks) = buildStep Get s hooks- extractStepFromConstructors (App (App (Field (Var (V _ 0)) "put") s) hooks) = buildStep Put s hooks- extractStepFromConstructors (App (App (Field (Var (V _ 0)) "task") s) hooks) = buildStep Task s hooks- extractStepFromConstructors (App (App (Field (Var (V _ 0)) "aggregate") s) hooks) = buildStep Aggregate s hooks- extractStepFromConstructors (App (App (Field (Var (V _ 0)) "do") s) hooks) = buildStep Do s hooks- extractStepFromConstructors (App (App (Field (Var (V _ 0)) "try") s) hooks) = buildStep Try s hooks+ extractStepFromConstructors (App (App (Field (Var (V _ 0)) "get") s) hooks) = buildStep Get s hooks+ extractStepFromConstructors (App (App (Field (Var (V _ 0)) "put") s) hooks) = buildStep Put s hooks+ extractStepFromConstructors (App (App (Field (Var (V _ 0)) "task") s) hooks) = buildStep Task s hooks+ extractStepFromConstructors (App (App (Field (Var (V _ 0)) "set_pipeline") s) hooks) = buildStep SetPipeline s hooks+ extractStepFromConstructors (App (App (Field (Var (V _ 0)) "aggregate") s) hooks) = buildStep Aggregate s hooks+ extractStepFromConstructors (App (App (Field (Var (V _ 0)) "do") s) hooks) = buildStep Do s hooks+ extractStepFromConstructors (App (App (Field (Var (V _ 0)) "try") s) hooks) = buildStep Try s hooks extractStepFromConstructors (App (App (Field (Var (V _ 0)) "in_parallel")- (App (Field (Union _) "Steps") s)) hooks) = buildStep (InParallel . InParallelSteps ) s hooks+ (App (Field (Union _) "Steps") s)) hooks) = buildStep (InParallel . InParallelSteps ) s hooks extractStepFromConstructors (App (App (Field (Var (V _ 0)) "in_parallel")- (App (Field (Union _) "Config") s)) hooks) = buildStep (InParallel . InParallelStepConfig ) s hooks+ (App (Field (Union _) "Config") s)) hooks) = buildStep (InParallel . InParallelStepConfig ) s hooks extractStepFromConstructors t = typeError expected t buildStep f x y = f <$> Dhall.extract auto x <*> Dhall.extract auto y @@ -273,6 +286,7 @@ toJSON (Get g h) = mergeHooks g h toJSON (Put p h) = mergeHooks p h toJSON (Task t h) = mergeHooks t h+ toJSON (SetPipeline s h) = mergeHooks s h toJSON (Aggregate steps h) = mergeHooks (object ["aggregate" .= steps]) h toJSON (Do steps h) = mergeHooks (object ["do" .= steps]) h toJSON (Try step h) = mergeHooks (object ["try" .= step]) h@@ -323,6 +337,7 @@ $(deriveToJSON (aesonPrefix snakeCase) ''TaskOutput) $(deriveToJSON (aesonPrefix snakeCase) ''TaskCache) $(deriveToJSON (aesonPrefix snakeCase) ''TaskConfig)+$(deriveToJSON (aesonPrefix snakeCase) ''SetPipelineStep) $(deriveToJSON (aesonPrefix snakeCase) ''TaskContainerLimits) $(deriveToJSON (aesonPrefix snakeCase) ''InParallelConfig) $(deriveToJSON (aesonPrefix snakeCase) ''StepHooks)
src/Fly/Yaml.hs view
@@ -57,6 +57,7 @@ stepResources (Get GetStep{..} _) = [getResource] stepResources (Put PutStep{..} _) = [putResource] stepResources (Task _ _) = []+ stepResources (SetPipeline _ _) = [] stepResources (Aggregate steps _) = getResourcesFromSteps steps stepResources (Do steps _) = getResourcesFromSteps steps stepResources (Try step _) = getResourcesFromStep step
test/Fly/TypesSpec.hs view
@@ -119,6 +119,34 @@ , "vars" .= Null , "tags" .= Null ] + describe "SetPipelineStep" $ do+ let testSP = SetPipelineStep{..} where+ spSetPipeline = "test-pipeline"+ spFile = "test-file"+ spVars = Nothing+ spVarFiles = Nothing+ spTags = Nothing+ spTimeout = Nothing+ spAttempts = Nothing++ describe "Interpret" $ do+ it "should interpret a set pipeline step" $ do+ sp <- input auto "./test/data/set-pipeline-step.dhall"+ sp `shouldBe` testSP++ it "should interpret a set pipeline step as step" $ do+ sp <- input auto "./dhall-concourse/helpers/setPipelineStep.dhall ./test/data/set-pipeline-step.dhall"+ sp `shouldBe` SetPipeline testSP (StepHooks Nothing Nothing Nothing Nothing)+ describe "ToJSON" $ do+ it "should translate a set pipeline step" $ do+ toJSON testSP `shouldBe` object [ "set_pipeline" .= "test-pipeline"+ , "file" .= "test-file"+ , "vars" .= Null+ , "var_files" .= Null+ , "attempts" .= Null+ , "timeout" .= Null+ , "tags" .= Null ]+ boshDeploymentResourceType :: ResourceType boshDeploymentResourceType = ResourceTypeCustom (CustomResourceType{..}) where crtName = "bosh-deployment"
+ test/data/set-pipeline-step.dhall view
@@ -0,0 +1,6 @@+let Concourse = ../../dhall-concourse/package.dhall++in Concourse.schemas.SetPipelineStep::{+ , set_pipeline = "test-pipeline"+ , file = "test-file"+ }