1
0
mirror of https://github.com/go-task/task.git synced 2025-06-23 00:38:19 +02:00

fix(platforms): do not run dynamic vars for other platforms (#1377)

This commit is contained in:
Andrey Nering
2023-10-21 21:42:26 -03:00
committed by GitHub
parent 38efad5aa2
commit b681ef9868
4 changed files with 32 additions and 6 deletions

View File

@ -1,5 +1,10 @@
# Changelog
## Unreleased
- Fix bug where dynamic `vars:` and `env:` were being executed when they should
actually be skipped by `platforms:` (#1273, #1377 by @andreynering).
## v3.31.0 - 2023-10-07
- Enabled the `--yes` flag for the

View File

@ -32,6 +32,7 @@ var knownOS = map[string]struct{}{
"solaris": {},
"windows": {},
"zos": {},
"__test__": {},
}
var knownArch = map[string]struct{}{

16
task.go
View File

@ -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
}
@ -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

View File

@ -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'
@ -36,16 +42,19 @@ 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]
@ -53,3 +62,10 @@ tasks:
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}