File tree Expand file tree Collapse file tree 4 files changed +40
-12
lines changed Expand file tree Collapse file tree 4 files changed +40
-12
lines changed Original file line number Diff line number Diff line change @@ -26,11 +26,13 @@ To use dhall-concourse you need to install [dhall-fly](https://github.com/akshay
2626
2727### Using dhall-to-json and jq (Experimental)
2828
29+ #### Jobs without Groups
30+
2931To use native rendering to render a list of jobs in a file called ` jobs.dhall ` , you'd have to write a dhall expression like this:
3032
3133``` dhall
3234let Concourse =
33- https:// raw. githubusercontent. com/ akshaymankar/ dhall- concourse/ 0.3 . 0 / package. dhall
35+ https:// raw. githubusercontent. com/ akshaymankar/ dhall- concourse/ 0.5 . 0 / package. dhall
3436
3537let jobs = ./ jobs. dhall
3638
@@ -45,6 +47,28 @@ dhall-to-json <<< './pipeline.dhall' \
4547 | jq ' .resource_types = (.resource_types|unique)'
4648```
4749
50+ #### Jobs with groups
51+
52+ Similarly, to render a list of ` GroupedJob ` s in a filed called ` grouped-jobs.dhall ` , this would be the expression to render:
53+
54+ ``` dhall
55+ let Concourse =
56+ https:// raw. githubusercontent. com/ akshaymankar/ dhall- concourse/ 0.5 . 0 / package. dhall
57+
58+ let groupedJobs = ./ grouped- jobs. dhall
59+
60+ in Concourse. render. groupedJobs groupedJobs
61+ ```
62+
63+ Now you can render this using dhall-to-json and jq like this:
64+
65+ ``` bash
66+ dhall-to-json <<< ' ./pipeline.dhall' \
67+ | jq ' .resources = (.resources|unique)' \
68+ | jq ' .resource_types = (.resource_types|unique)' \
69+ | jq ' .groups = (.groups | group_by(.name) | map({name: .[0].name, jobs: (map(.jobs) | flatten) }))'
70+ ```
71+
4872## Defining a pipeline
4973
5074### Example 1: Hello World
Original file line number Diff line number Diff line change 1111 ./ helpers/ package. dhall sha256: 94 d9aab795fe7049da8c7904d6faa7c7be60ed10a59565c33d7cf9d026a6968d
1212 ? ./ helpers/ package. dhall
1313, render =
14- ./ render/ package. dhall sha256: 9817 b38973cc0354670cbd0419ca79b19e6999d7d24ed92bb5b41dd60245f750
14+ ./ render/ package. dhall sha256: 380 eab61bcc75473589242aa13011d0912f0634745f84c185296594c557bacb7
1515 ? ./ render/ package. dhall
1616, extractors =
1717 ./ extractors/ package. dhall sha256: 761 aabbb030ca0fca473273e7c8b45c29dcd848388bdb767db7322a1243a5dd6
Original file line number Diff line number Diff line change @@ -9,17 +9,21 @@ in λ(groupedJobs : List Types.GroupedJob)
99 Types. Job
1010 (λ(groupedJob : Types. GroupedJob ) → groupedJob. job)
1111 groupedJobs
12-
13- let jobGroups =
14- Prelude.List. map
12+
13+ let RenderedGroup = { name : Text , jobs : List Text }
14+
15+ let jobGroups
16+ : List RenderedGroup
17+ = Prelude.List. concatMap
1518 Types. GroupedJob
16- ( Prelude.Map. Entry Text ( List Text ))
19+ RenderedGroup
1720 ( λ(groupedJob : Types. GroupedJob )
18- → Prelude.Map. keyValue
19- (List Text )
20- groupedJob. job. name
21+ → Prelude.List. map
22+ Text
23+ RenderedGroup
24+ (λ(g : Text ) → { name = g, jobs = [ groupedJob. job. name ] })
2125 groupedJob. groups
2226 )
2327 groupedJobs
24-
25- in ./ pipeline. dhall jobs ⫽ { jobGroups = jobGroups }
28+
29+ in ./ pipeline. dhall jobs ⫽ { groups = jobGroups }
Original file line number Diff line number Diff line change 2323 ./ pipeline. dhall sha256: d66fb1637db9cf4680213b2b6939a5d5cff64b2f4e5d4e24444d49d40f92853e
2424 ? ./ pipeline. dhall
2525, groupedJobs =
26- ./ groupedJobs. dhall sha256: 807 ef57f86ae37a22f7099a23c684ab45c59034c9dacfcd467b9b623e649ed6b
26+ ./ groupedJobs. dhall sha256: 9 d56b1f88ec737fa02cd8eddc5fa239fd89cb6c509130ea83295899c2ac49c26
2727 ? ./ groupedJobs. dhall
2828}
You can’t perform that action at this time.
0 commit comments