diff --git a/taskfile/ast/precondition.go b/taskfile/ast/precondition.go index ab48094a..9d8ad80f 100644 --- a/taskfile/ast/precondition.go +++ b/taskfile/ast/precondition.go @@ -4,12 +4,10 @@ import ( "fmt" "sync" - + "github.com/go-task/task/v3/errors" "github.com/go-task/task/v3/internal/deepcopy" "gopkg.in/yaml.v3" - - "github.com/go-task/task/v3/errors" ) // Precondition represents a precondition necessary for a task to run @@ -25,6 +23,12 @@ type ( } ) +func NewPreconditions() *Preconditions { + return &Preconditions{ + Preconditions: make([]*Precondition, 0), + } +} + func (p *Preconditions) DeepCopy() *Preconditions { if p == nil { return nil @@ -46,12 +50,6 @@ func (p *Precondition) DeepCopy() *Precondition { } } -func NewPreconditions() *Preconditions { - return &Preconditions{ - Preconditions: make([]*Precondition, 0), - } -} - // UnmarshalYAML implements yaml.Unmarshaler interface. func (p *Precondition) UnmarshalYAML(node *yaml.Node) error { switch node.Kind { diff --git a/website/docs/usage.mdx b/website/docs/usage.mdx index d57a0ffe..eab86710 100644 --- a/website/docs/usage.mdx +++ b/website/docs/usage.mdx @@ -1019,6 +1019,21 @@ tasks: - echo "I will not run" ``` +They can be defined at two levels: + +- Global Level: Applies to all tasks. +- Task Level: Applies only to a specific task. + +```yaml +version: '3' + +preconditions: + - sh: 'exit 1' + +tasks: + task-will-fail: echo "I will not run" +``` + ### Limiting when tasks run If a task executed by multiple `cmds` or multiple `deps` you can control when it