github-actions-0.1.1.0: Github Actions
Copyright(c) 2025 Bellroy Pty Ltd
LicenseBSD-3-Clause
MaintainerBellroy Tech Team <haskell@bellroy.com>
Safe HaskellNone
LanguageHaskell2010

Language.Github.Actions.Job.Needs

Description

This module provides the JobNeeds type for representing job dependencies in GitHub Actions workflows. GitHub Actions allows both strings and lists of strings for the needs field.

Examples of valid needs specifications: * needs: build - Single job specified as a string * needs: [build] - Single job specified as a list of strings * needs: [build, test] - Multiple job dependencies specified as a list of strings

For more information about GitHub Actions job dependencies, see: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds

Synopsis

Documentation

data JobNeeds Source #

Job dependency specification that preserves YAML representation.

GitHub Actions supports flexible job dependency specification:

  • JobNeedsString - Single job dependency as string like needs: build
  • JobNeedsArray - Multiple job dependencies as array like needs: [build, test]

Examples:

-- Single job dependency (string form)
stringDep :: JobNeeds
stringDep = JobNeedsString (JobId "build")

-- Multiple job dependencies (array form)
arrayDeps :: JobNeeds
arrayDeps = JobNeedsArray (JobId "build" :| [JobId "test", JobId "lint"])

The type preserves the original YAML format during round-trip serialization. A string input will serialize back to a string, and an array input will serialize back to an array, preventing information loss.

Instances

Instances details
FromJSON JobNeeds Source # 
Instance details

Defined in Language.Github.Actions.Job.Needs

ToJSON JobNeeds Source # 
Instance details

Defined in Language.Github.Actions.Job.Needs

Generic JobNeeds Source # 
Instance details

Defined in Language.Github.Actions.Job.Needs

Associated Types

type Rep JobNeeds 
Instance details

Defined in Language.Github.Actions.Job.Needs

type Rep JobNeeds = D1 ('MetaData "JobNeeds" "Language.Github.Actions.Job.Needs" "github-actions-0.1.1.0-BjHhRMO6iQ17qdsNXwhDab" 'False) (C1 ('MetaCons "JobNeedsString" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 JobId)) :+: C1 ('MetaCons "JobNeedsArray" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty JobId))))

Methods

from :: JobNeeds -> Rep JobNeeds x #

to :: Rep JobNeeds x -> JobNeeds #

Show JobNeeds Source # 
Instance details

Defined in Language.Github.Actions.Job.Needs

Eq JobNeeds Source # 
Instance details

Defined in Language.Github.Actions.Job.Needs

Ord JobNeeds Source # 
Instance details

Defined in Language.Github.Actions.Job.Needs

type Rep JobNeeds Source # 
Instance details

Defined in Language.Github.Actions.Job.Needs

type Rep JobNeeds = D1 ('MetaData "JobNeeds" "Language.Github.Actions.Job.Needs" "github-actions-0.1.1.0-BjHhRMO6iQ17qdsNXwhDab" 'False) (C1 ('MetaCons "JobNeedsString" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 JobId)) :+: C1 ('MetaCons "JobNeedsArray" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty JobId))))