Skip to content

Commit

Permalink
fix(platforms): do not run dynamic vars for other platforms
Browse files Browse the repository at this point in the history
  • Loading branch information
andreynering committed Oct 22, 2023
1 parent 6de3be1 commit 3b93533
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 6 deletions.
1 change: 1 addition & 0 deletions internal/goext/meta.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ var knownOS = map[string]struct{}{
"solaris": {},
"windows": {},
"zos": {},
"__test__": {},
}

var knownArch = map[string]struct{}{
Expand Down
16 changes: 10 additions & 6 deletions task.go
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,16 @@ func (e *Executor) splitRegularAndWatchCalls(calls ...taskfile.Call) (regularCal

// RunTask runs a task by its name
func (e *Executor) RunTask(ctx context.Context, call taskfile.Call) error {
t, err := e.CompiledTask(call)
t, err := e.FastCompiledTask(call)
if err != nil {
return err
}
if !shouldRunOnCurrentPlatform(t.Platforms) {
e.Logger.VerboseOutf(logger.Yellow, `task: %q not for current platform - ignored\n`, call.Task)
return nil
}

t, err = e.CompiledTask(call)
if err != nil {
return err
}
Expand All @@ -185,11 +194,6 @@ func (e *Executor) RunTask(ctx context.Context, call taskfile.Call) error {
}

return e.startExecution(ctx, t, func(ctx context.Context) error {
if !shouldRunOnCurrentPlatform(t.Platforms) {
e.Logger.VerboseOutf(logger.Yellow, `task: %q not for current platform - ignored\n`, call.Task)
return nil
}

e.Logger.VerboseErrf(logger.Magenta, "task: %q started\n", call.Task)
if err := e.runDeps(ctx, t); err != nil {
return err
Expand Down
16 changes: 16 additions & 0 deletions testdata/platforms/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,37 @@ version: '3'

tasks:
build-windows:
deps: [failed-var-other-platform]
platforms: [windows]
cmds:
- echo 'Running task on windows'

build-darwin:
deps: [failed-var-other-platform]
platforms: [darwin]
cmds:
- echo 'Running task on darwin'

build-linux:
deps: [failed-var-other-platform]
platforms: [linux]
cmds:
- echo 'Running task on linux'

build-freebsd:
deps: [failed-var-other-platform]
platforms: [freebsd]
cmds:
- echo 'Running task on freebsd'

build-blank-os:
deps: [failed-var-other-platform]
platforms: []
cmds:
- echo 'Running command'

build-multiple:
deps: [failed-var-other-platform]
platforms: []
cmds:
- cmd: echo 'Running command'
Expand All @@ -36,20 +42,30 @@ tasks:
platforms: [darwin]

build-amd64:
deps: [failed-var-other-platform]
platforms: [amd64]
cmds:
- echo "Running command on amd64"

build-arm64:
deps: [failed-var-other-platform]
platforms: [arm64]
cmds:
- echo "Running command on arm64"

build-mixed:
deps: [failed-var-other-platform]
cmds:
- cmd: echo 'building on windows/arm64'
platforms: [windows/arm64]
- cmd: echo 'building on linux/amd64'
platforms: [linux/amd64]
- cmd: echo 'building on darwin'
platforms: [darwin]

failed-var-other-platform:
platforms: [__test__]
env:
EXAMPLE_VAR: {sh: exit 1}
vars:
EXAMPLE_VAR: {sh: exit 2}

0 comments on commit 3b93533

Please sign in to comment.