summaryrefslogtreecommitdiff
path: root/src/Job
diff options
context:
space:
mode:
Diffstat (limited to 'src/Job')
-rw-r--r--src/Job/Types.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Job/Types.hs b/src/Job/Types.hs
index 5415e4d..19cf560 100644
--- a/src/Job/Types.hs
+++ b/src/Job/Types.hs
@@ -14,7 +14,8 @@ data Declared
data Evaluated
data Job' d = Job
- { jobName :: JobName
+ { jobId :: JobId' d
+ , jobName :: JobName
, jobContainingCheckout :: [ JobCheckout ]
, jobOtherCheckout :: [ ( JobRepo d, Maybe Text, JobCheckout ) ]
, jobRecipe :: [ CreateProcess ]
@@ -25,6 +26,10 @@ data Job' d = Job
type Job = Job' Evaluated
type DeclaredJob = Job' Declared
+type family JobId' d :: Type where
+ JobId' Declared = JobName
+ JobId' Evaluated = JobId
+
data JobName = JobName Text
deriving (Eq, Ord, Show)
@@ -78,3 +83,6 @@ textJobIdPart = \case
JobIdName name -> textJobName name
JobIdCommit cid -> textCommitId cid
JobIdTree tid -> textTreeId tid
+
+textJobId :: JobId -> Text
+textJobId (JobId ids) = T.intercalate "." $ map textJobIdPart ids