diff options
Diffstat (limited to 'src/Job/Types.hs')
| -rw-r--r-- | src/Job/Types.hs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/Job/Types.hs b/src/Job/Types.hs index a0c1d47..d9fa08e 100644 --- a/src/Job/Types.hs +++ b/src/Job/Types.hs @@ -7,6 +7,7 @@ import Data.Text qualified as T import System.FilePath.Glob import System.Process +import Destination import Repo @@ -19,7 +20,8 @@ data Job' d = Job , jobCheckout :: [ JobCheckout d ] , jobRecipe :: [ CreateProcess ] , jobArtifacts :: [ ( ArtifactName, Pattern ) ] - , jobUses :: [ ( JobName, ArtifactName ) ] + , jobUses :: [ ArtifactSpec ] + , jobPublish :: [ JobPublish d ] } type Job = Job' Evaluated @@ -49,10 +51,22 @@ data JobCheckout d = JobCheckout , jcDestination :: Maybe FilePath } +type family JobDestination d :: Type where + JobDestination Declared = DestinationName + JobDestination Evaluated = Destination + +data JobPublish d = JobPublish + { jpArtifact :: ArtifactSpec + , jpDestination :: JobDestination d + , jpPath :: Maybe FilePath + } + data ArtifactName = ArtifactName Text deriving (Eq, Ord, Show) +type ArtifactSpec = ( JobName, ArtifactName ) + data JobSet' d = JobSet { jobsetId :: JobSetId' d |