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

chore: bump minimun version to 1.24 (#2377)

This commit is contained in:
Valentin Maerten
2025-08-14 18:34:38 +02:00
committed by GitHub
parent c0b4c19443
commit 0fc26a43a9
6 changed files with 80 additions and 84 deletions

View File

@@ -13,7 +13,7 @@ jobs:
name: Lint
strategy:
matrix:
go-version: [1.23.x, 1.24.x]
go-version: [1.24.x, 1.25.x]
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v5

View File

@@ -13,7 +13,7 @@ jobs:
name: Test
strategy:
matrix:
go-version: [1.23.x, 1.24.x]
go-version: [1.24.x, 1.25.x]
platform: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{matrix.platform}}
steps:

View File

@@ -3,7 +3,6 @@ package task_test
import (
"bytes"
"cmp"
"context"
"fmt"
"os"
"path/filepath"
@@ -189,7 +188,7 @@ func (tt *ExecutorTest) run(t *testing.T) {
}
// Run the task and check for errors
ctx := context.Background()
ctx := t.Context()
if err := e.Run(ctx, call); tt.wantRunError {
require.Error(t, err)
tt.writeFixtureErrRun(t, g, err)

3
go.mod
View File

@@ -1,6 +1,6 @@
module github.com/go-task/task/v3
go 1.23.0
go 1.24.0
require (
github.com/Ladicle/tabwriter v1.0.0
@@ -19,7 +19,6 @@ require (
github.com/google/uuid v1.6.0
github.com/joho/godotenv v1.5.1
github.com/mitchellh/hashstructure/v2 v2.0.2
github.com/otiai10/copy v1.14.1
github.com/puzpuzpuz/xsync/v3 v3.5.1
github.com/sajari/fuzzy v1.0.0
github.com/sebdah/goldie/v2 v2.7.1

View File

@@ -1,7 +1,6 @@
package fingerprint
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
@@ -164,7 +163,7 @@ func TestIsTaskUpToDate(t *testing.T) {
}
result, err := IsTaskUpToDate(
context.Background(),
t.Context(),
tt.task,
WithStatusChecker(mockStatusChecker),
WithSourcesChecker(mockSourcesChecker),

View File

@@ -2,7 +2,6 @@ package task_test
import (
"bytes"
"context"
"fmt"
"io"
"io/fs"
@@ -356,7 +355,7 @@ func (fct fileContentTest) Run(t *testing.T) {
)
require.NoError(t, e.Setup(), "e.Setup()")
require.NoError(t, e.Run(context.Background(), &task.Call{Task: fct.Target}), "e.Run(target)")
require.NoError(t, e.Run(t.Context(), &task.Call{Task: fct.Target}), "e.Run(target)")
for name, expectContent := range fct.Files {
t.Run(fct.name(name), func(t *testing.T) {
path := filepathext.SmartJoin(e.Dir, name)
@@ -407,7 +406,7 @@ func TestGenerates(t *testing.T) {
fmt.Sprintf("task: Task \"%s\" is up to date\n", theTask)
// Run task for the first time.
require.NoError(t, e.Run(context.Background(), &task.Call{Task: theTask}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: theTask}))
if _, err := os.Stat(srcFile); err != nil {
t.Errorf("File should exist: %v", err)
@@ -422,7 +421,7 @@ func TestGenerates(t *testing.T) {
buff.Reset()
// Re-run task to ensure it's now found to be up-to-date.
require.NoError(t, e.Run(context.Background(), &task.Call{Task: theTask}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: theTask}))
if buff.String() != upToDate {
t.Errorf("Wrong output message: %s", buff.String())
}
@@ -463,7 +462,7 @@ func TestStatusChecksum(t *testing.T) { // nolint:paralleltest // cannot run in
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: test.task}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: test.task}))
for _, f := range test.files {
_, err := os.Stat(filepathext.SmartJoin(dir, f))
require.NoError(t, err)
@@ -476,7 +475,7 @@ func TestStatusChecksum(t *testing.T) { // nolint:paralleltest // cannot run in
time := s.ModTime()
buff.Reset()
require.NoError(t, e.Run(context.Background(), &task.Call{Task: test.task}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: test.task}))
assert.Equal(t, `task: Task "`+test.task+`" is up to date`+"\n", buff.String())
s, err = os.Stat(filepathext.SmartJoin(tempDir.Fingerprint, "checksum/"+test.task))
@@ -507,12 +506,12 @@ func TestStatusVariables(t *testing.T) {
task.WithVerbose(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "build-checksum"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "build-checksum"}))
assert.Contains(t, buff.String(), "3e464c4b03f4b65d740e1e130d4d108a")
buff.Reset()
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "build-ts"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "build-ts"}))
inf, err := os.Stat(filepathext.SmartJoin(dir, "source.txt"))
require.NoError(t, err)
@@ -543,12 +542,12 @@ func TestCmdsVariables(t *testing.T) {
task.WithVerbose(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "build-checksum"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "build-checksum"}))
assert.Contains(t, buff.String(), "3e464c4b03f4b65d740e1e130d4d108a")
buff.Reset()
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "build-ts"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "build-ts"}))
inf, err := os.Stat(filepathext.SmartJoin(dir, "source.txt"))
require.NoError(t, err)
ts := fmt.Sprintf("%d", inf.ModTime().Unix())
@@ -569,7 +568,7 @@ func TestCyclicDep(t *testing.T) {
task.WithStderr(io.Discard),
)
require.NoError(t, e.Setup())
assert.IsType(t, &errors.TaskCalledTooManyTimesError{}, e.Run(context.Background(), &task.Call{Task: "task-1"}))
assert.IsType(t, &errors.TaskCalledTooManyTimesError{}, e.Run(t.Context(), &task.Call{Task: "task-1"}))
}
func TestTaskVersion(t *testing.T) {
@@ -619,10 +618,10 @@ func TestTaskIgnoreErrors(t *testing.T) {
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "task-should-pass"}))
require.Error(t, e.Run(context.Background(), &task.Call{Task: "task-should-fail"}))
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "cmd-should-pass"}))
require.Error(t, e.Run(context.Background(), &task.Call{Task: "cmd-should-fail"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "task-should-pass"}))
require.Error(t, e.Run(t.Context(), &task.Call{Task: "task-should-fail"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "cmd-should-pass"}))
require.Error(t, e.Run(t.Context(), &task.Call{Task: "cmd-should-fail"}))
}
func TestExpand(t *testing.T) {
@@ -642,7 +641,7 @@ func TestExpand(t *testing.T) {
task.WithStderr(&buff),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "pwd"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "pwd"}))
assert.Equal(t, home, strings.TrimSpace(buff.String()))
}
@@ -663,7 +662,7 @@ func TestDry(t *testing.T) {
task.WithDry(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "build"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "build"}))
assert.Equal(t, "task: [build] touch file.txt", strings.TrimSpace(buff.String()))
if _, err := os.Stat(file); err == nil {
@@ -692,13 +691,13 @@ func TestDryChecksum(t *testing.T) {
task.WithDry(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "default"}))
_, err := os.Stat(checksumFile)
require.Error(t, err, "checksum file should not exist")
e.Dry = false
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "default"}))
_, err = os.Stat(checksumFile)
require.NoError(t, err, "checksum file should exist")
}
@@ -840,7 +839,7 @@ func TestIncludesRemote(t *testing.T) {
path := filepath.Join(dir, outputFile)
require.NoError(t, os.RemoveAll(path))
require.NoError(t, e.executor.Run(context.Background(), taskCall))
require.NoError(t, e.executor.Run(t.Context(), taskCall))
actualContent, err := os.ReadFile(path)
require.NoError(t, err)
@@ -1120,11 +1119,11 @@ func TestIncludesRelativePath(t *testing.T) {
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "common:pwd"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "common:pwd"}))
assert.Contains(t, buff.String(), "testdata/includes_rel_path/common")
buff.Reset()
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "included:common:pwd"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "included:common:pwd"}))
assert.Contains(t, buff.String(), "testdata/includes_rel_path/common")
}
@@ -1156,7 +1155,7 @@ func TestIncludesInternal(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: test.task})
err := e.Run(t.Context(), &task.Call{Task: test.task})
if test.expectedErr {
require.Error(t, err)
} else {
@@ -1203,7 +1202,7 @@ func TestIncludesFlatten(t *testing.T) {
assert.EqualError(t, err, test.expectedOutput)
} else {
require.NoError(t, err)
_ = e.Run(context.Background(), &task.Call{Task: test.task})
_ = e.Run(t.Context(), &task.Call{Task: test.task})
assert.Equal(t, test.expectedOutput, buff.String())
}
})
@@ -1235,7 +1234,7 @@ func TestIncludesInterpolation(t *testing.T) { // nolint:paralleltest // cannot
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: test.task})
err := e.Run(t.Context(), &task.Call{Task: test.task})
if test.expectedErr {
require.Error(t, err)
} else {
@@ -1258,20 +1257,20 @@ func TestIncludesWithExclude(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: "included:bar"})
err := e.Run(t.Context(), &task.Call{Task: "included:bar"})
require.NoError(t, err)
assert.Equal(t, "bar\n", buff.String())
buff.Reset()
err = e.Run(context.Background(), &task.Call{Task: "included:foo"})
err = e.Run(t.Context(), &task.Call{Task: "included:foo"})
require.Error(t, err)
buff.Reset()
err = e.Run(context.Background(), &task.Call{Task: "bar"})
err = e.Run(t.Context(), &task.Call{Task: "bar"})
require.Error(t, err)
buff.Reset()
err = e.Run(context.Background(), &task.Call{Task: "foo"})
err = e.Run(t.Context(), &task.Call{Task: "foo"})
require.NoError(t, err)
assert.Equal(t, "foo\n", buff.String())
}
@@ -1301,7 +1300,7 @@ func TestIncludedTaskfileVarMerging(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: test.task})
err := e.Run(t.Context(), &task.Call{Task: test.task})
require.NoError(t, err)
assert.Contains(t, buff.String(), test.expectedOutput)
})
@@ -1336,7 +1335,7 @@ func TestInternalTask(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: test.task})
err := e.Run(t.Context(), &task.Call{Task: test.task})
if test.expectedErr {
require.Error(t, err)
} else {
@@ -1421,7 +1420,7 @@ func TestSummary(t *testing.T) {
task.WithSilent(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "task-with-summary"}, &task.Call{Task: "other-task-with-summary"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "task-with-summary"}, &task.Call{Task: "other-task-with-summary"}))
data, err := os.ReadFile(filepathext.SmartJoin(dir, "task-with-summary.txt"))
require.NoError(t, err)
@@ -1447,7 +1446,7 @@ func TestWhenNoDirAttributeItRunsInSameDirAsTaskfile(t *testing.T) {
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "whereami"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "whereami"}))
// got should be the "dir" part of "testdata/dir"
got := strings.TrimSuffix(filepath.Base(out.String()), "\n")
@@ -1467,7 +1466,7 @@ func TestWhenDirAttributeAndDirExistsItRunsInThatDir(t *testing.T) {
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "whereami"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "whereami"}))
got := strings.TrimSuffix(filepath.Base(out.String()), "\n")
assert.Equal(t, expected, got, "Mismatch in the working directory")
@@ -1493,7 +1492,7 @@ func TestWhenDirAttributeItCreatesMissingAndRunsInThatDir(t *testing.T) {
t.Errorf("Directory should not exist: %v", err)
}
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: target}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: target}))
got := strings.TrimSuffix(filepath.Base(out.String()), "\n")
assert.Equal(t, expected, got, "Mismatch in the working directory")
@@ -1522,7 +1521,7 @@ func TestDynamicVariablesRunOnTheNewCreatedDir(t *testing.T) {
t.Errorf("Directory should not exist: %v", err)
}
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: target}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: target}))
got := strings.TrimSuffix(filepath.Base(out.String()), "\n")
assert.Equal(t, expected, got, "Mismatch in the working directory")
@@ -1593,7 +1592,7 @@ func TestShortTaskNotation(t *testing.T) {
task.WithSilent(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "default"}))
assert.Equal(t, "string-slice-1\nstring-slice-2\nstring\n", buff.String())
}
@@ -1791,7 +1790,7 @@ func TestExitImmediately(t *testing.T) {
)
require.NoError(t, e.Setup())
require.Error(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.Error(t, e.Run(t.Context(), &task.Call{Task: "default"}))
assert.Contains(t, buff.String(), `"this_should_fail": executable file not found in $PATH`)
}
@@ -1824,7 +1823,7 @@ func TestRunOnceSharedDeps(t *testing.T) {
task.WithForceAll(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "build"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "build"}))
rx := regexp.MustCompile(`task: \[service-[a,b]:library:build\] echo "build library"`)
matches := rx.FindAllStringSubmatch(buff.String(), -1)
@@ -1856,10 +1855,10 @@ task-1 ran successfully
task: [task-1] echo 'task-1 ran successfully'
task-1 ran successfully
`)
require.Error(t, e.Run(context.Background(), &task.Call{Task: "task-2"}))
require.Error(t, e.Run(t.Context(), &task.Call{Task: "task-2"}))
assert.Contains(t, buff.String(), expectedOutputOrder)
buff.Reset()
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "parent"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "parent"}))
assert.Contains(t, buff.String(), "child task deferred value-from-parent")
}
@@ -1875,7 +1874,7 @@ func TestExitCodeZero(t *testing.T) {
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "exit-zero"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "exit-zero"}))
assert.Equal(t, "FOO=bar - DYNAMIC_FOO=bar - EXIT_CODE=", strings.TrimSpace(buff.String()))
}
@@ -1891,7 +1890,7 @@ func TestExitCodeOne(t *testing.T) {
)
require.NoError(t, e.Setup())
require.Error(t, e.Run(context.Background(), &task.Call{Task: "exit-one"}))
require.Error(t, e.Run(t.Context(), &task.Call{Task: "exit-one"}))
assert.Equal(t, "FOO=bar - DYNAMIC_FOO=bar - EXIT_CODE=1", strings.TrimSpace(buff.String()))
}
@@ -1920,7 +1919,7 @@ func TestIgnoreNilElements(t *testing.T) {
task.WithSilent(true),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "default"}))
assert.Equal(t, "string-slice-1\n", buff.String())
})
}
@@ -1948,7 +1947,7 @@ task: [bye] echo 'Bye!'
Bye!
::endgroup::
`)
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "bye"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "bye"}))
t.Log(buff.String())
assert.Equal(t, strings.TrimSpace(buff.String()), expectedOutputOrder)
}
@@ -1965,7 +1964,7 @@ func TestOutputGroupErrorOnlySwallowsOutputOnSuccess(t *testing.T) {
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "passing"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "passing"}))
t.Log(buff.String())
assert.Empty(t, buff.String())
}
@@ -1982,7 +1981,7 @@ func TestOutputGroupErrorOnlyShowsOutputOnFailure(t *testing.T) {
)
require.NoError(t, e.Setup())
require.Error(t, e.Run(context.Background(), &task.Call{Task: "failing"}))
require.Error(t, e.Run(t.Context(), &task.Call{Task: "failing"}))
t.Log(buff.String())
assert.Contains(t, "failing-output", strings.TrimSpace(buff.String()))
assert.NotContains(t, "passing", strings.TrimSpace(buff.String()))
@@ -2014,7 +2013,7 @@ VAR_1 is included-default-var1
task: [included3:task1] echo "VAR_2 is included-default-var2"
VAR_2 is included-default-var2
`)
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "task1"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "task1"}))
t.Log(buff.String())
assert.Equal(t, strings.TrimSpace(buff.String()), expectedOutputOrder)
}
@@ -2052,7 +2051,7 @@ Hello foo
task: [bar:lib:greet] echo 'Hello bar'
Hello bar
`)
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "default"}))
t.Log(buff.String())
assert.Equal(t, expectedOutputOrder, strings.TrimSpace(buff.String()))
}
@@ -2090,7 +2089,7 @@ func TestErrorCode(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: test.task})
err := e.Run(t.Context(), &task.Call{Task: test.task})
require.Error(t, err)
taskRunErr, ok := err.(*errors.TaskRunError)
assert.True(t, ok, "cannot cast returned error to *task.TaskRunError")
@@ -2142,7 +2141,7 @@ func TestEvaluateSymlinksInPaths(t *testing.T) { // nolint:paralleltest // canno
for _, test := range tests { // nolint:paralleltest // cannot run in parallel
t.Run(test.name, func(t *testing.T) {
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: test.task})
err := e.Run(t.Context(), &task.Call{Task: test.task})
require.NoError(t, err)
assert.Equal(t, test.expected, strings.TrimSpace(buff.String()))
buff.Reset()
@@ -2185,7 +2184,7 @@ func TestTaskfileWalk(t *testing.T) {
task.WithStderr(&buff),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "default"}))
assert.Equal(t, test.expected, buff.String())
})
}
@@ -2203,7 +2202,7 @@ func TestUserWorkingDirectory(t *testing.T) {
wd, err := os.Getwd()
require.NoError(t, err)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "default"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "default"}))
assert.Equal(t, fmt.Sprintf("%s\n", wd), buff.String())
}
@@ -2225,7 +2224,7 @@ func TestUserWorkingDirectoryWithIncluded(t *testing.T) {
require.NoError(t, err)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "included:echo"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "included:echo"}))
assert.Equal(t, fmt.Sprintf("%s\n", wd), buff.String())
}
@@ -2239,7 +2238,7 @@ func TestPlatforms(t *testing.T) {
task.WithStderr(&buff),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "build-" + runtime.GOOS}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "build-" + runtime.GOOS}))
assert.Equal(t, fmt.Sprintf("task: [build-%s] echo 'Running task on %s'\nRunning task on %s\n", runtime.GOOS, runtime.GOOS, runtime.GOOS), buff.String())
}
@@ -2254,7 +2253,7 @@ func TestPOSIXShellOptsGlobalLevel(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: "pipefail"})
err := e.Run(t.Context(), &task.Call{Task: "pipefail"})
require.NoError(t, err)
assert.Equal(t, "pipefail\ton\n", buff.String())
}
@@ -2270,7 +2269,7 @@ func TestPOSIXShellOptsTaskLevel(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: "pipefail"})
err := e.Run(t.Context(), &task.Call{Task: "pipefail"})
require.NoError(t, err)
assert.Equal(t, "pipefail\ton\n", buff.String())
}
@@ -2286,7 +2285,7 @@ func TestPOSIXShellOptsCommandLevel(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: "pipefail"})
err := e.Run(t.Context(), &task.Call{Task: "pipefail"})
require.NoError(t, err)
assert.Equal(t, "pipefail\ton\n", buff.String())
}
@@ -2302,7 +2301,7 @@ func TestBashShellOptsGlobalLevel(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: "globstar"})
err := e.Run(t.Context(), &task.Call{Task: "globstar"})
require.NoError(t, err)
assert.Equal(t, "globstar\ton\n", buff.String())
}
@@ -2318,7 +2317,7 @@ func TestBashShellOptsTaskLevel(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: "globstar"})
err := e.Run(t.Context(), &task.Call{Task: "globstar"})
require.NoError(t, err)
assert.Equal(t, "globstar\ton\n", buff.String())
}
@@ -2334,7 +2333,7 @@ func TestBashShellOptsCommandLevel(t *testing.T) {
)
require.NoError(t, e.Setup())
err := e.Run(context.Background(), &task.Call{Task: "globstar"})
err := e.Run(t.Context(), &task.Call{Task: "globstar"})
require.NoError(t, err)
assert.Equal(t, "globstar\ton\n", buff.String())
}
@@ -2354,7 +2353,7 @@ func TestSplitArgs(t *testing.T) {
vars := ast.NewVars()
vars.Set("CLI_ARGS", ast.Var{Value: "foo bar 'foo bar baz'"})
err := e.Run(context.Background(), &task.Call{Task: "default", Vars: vars})
err := e.Run(t.Context(), &task.Call{Task: "default", Vars: vars})
require.NoError(t, err)
assert.Equal(t, "3\n", buff.String())
}
@@ -2395,14 +2394,14 @@ func TestSilence(t *testing.T) {
// Then test the two basic cases where the task is silent or not.
// A silenced task.
err = e.Run(context.Background(), &task.Call{Task: "silent"})
err = e.Run(t.Context(), &task.Call{Task: "silent"})
require.NoError(t, err)
require.Empty(t, buff.String(), "siWhile running lent: Expected not see output, because the task is silent")
buff.Reset()
// A chatty (not silent) task.
err = e.Run(context.Background(), &task.Call{Task: "chatty"})
err = e.Run(t.Context(), &task.Call{Task: "chatty"})
require.NoError(t, err)
require.NotEmpty(t, buff.String(), "chWhile running atty: Expected to see output, because the task is not silent")
@@ -2410,42 +2409,42 @@ func TestSilence(t *testing.T) {
// Then test invoking the two task from other tasks.
// A silenced task that calls a chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-silent-calls-chatty-non-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-silent-calls-chatty-non-silenced"})
require.NoError(t, err)
require.NotEmpty(t, buff.String(), "While running task-test-silent-calls-chatty-non-silenced: Expected to see output. The task is silenced, but the called task is not. Silence does not propagate to called tasks.")
buff.Reset()
// A silent task that does a silent call to a chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-silent-calls-chatty-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-silent-calls-chatty-silenced"})
require.NoError(t, err)
require.Empty(t, buff.String(), "While running task-test-silent-calls-chatty-silenced: Expected not to see output. The task calls chatty task, but the call is silenced.")
buff.Reset()
// A chatty task that does a call to a chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-chatty-calls-chatty-non-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-chatty-calls-chatty-non-silenced"})
require.NoError(t, err)
require.NotEmpty(t, buff.String(), "While running task-test-chatty-calls-chatty-non-silenced: Expected to see output. Both caller and callee are chatty and not silenced.")
buff.Reset()
// A chatty task that does a silenced call to a chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-chatty-calls-chatty-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-chatty-calls-chatty-silenced"})
require.NoError(t, err)
require.NotEmpty(t, buff.String(), "While running task-test-chatty-calls-chatty-silenced: Expected to see output. Call to a chatty task is silenced, but the parent task is not.")
buff.Reset()
// A chatty task with no cmd's of its own that does a silenced call to a chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-no-cmds-calls-chatty-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-no-cmds-calls-chatty-silenced"})
require.NoError(t, err)
require.Empty(t, buff.String(), "While running task-test-no-cmds-calls-chatty-silenced: Expected not to see output. While the task itself is not silenced, it does not have any cmds and only does an invocation of a silenced task.")
buff.Reset()
// A chatty task that does a silenced invocation of a task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-chatty-calls-silenced-cmd"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-chatty-calls-silenced-cmd"})
require.NoError(t, err)
require.Empty(t, buff.String(), "While running task-test-chatty-calls-silenced-cmd: Expected not to see output. While the task itself is not silenced, its call to the chatty task is silent.")
@@ -2453,21 +2452,21 @@ func TestSilence(t *testing.T) {
// Then test calls via dependencies.
// A silent task that depends on a chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-is-silent-depends-on-chatty-non-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-is-silent-depends-on-chatty-non-silenced"})
require.NoError(t, err)
require.NotEmpty(t, buff.String(), "While running task-test-is-silent-depends-on-chatty-non-silenced: Expected to see output. The task is silent and depends on a chatty task. Dependencies does not inherit silence.")
buff.Reset()
// A silent task that depends on a silenced chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-is-silent-depends-on-chatty-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-is-silent-depends-on-chatty-silenced"})
require.NoError(t, err)
require.Empty(t, buff.String(), "While running task-test-is-silent-depends-on-chatty-silenced: Expected not to see output. The task is silent and has a silenced dependency on a chatty task.")
buff.Reset()
// A chatty task that, depends on a silenced chatty task.
err = e.Run(context.Background(), &task.Call{Task: "task-test-is-chatty-depends-on-chatty-silenced"})
err = e.Run(t.Context(), &task.Call{Task: "task-test-is-chatty-depends-on-chatty-silenced"})
require.NoError(t, err)
require.Empty(t, buff.String(), "While running task-test-is-chatty-depends-on-chatty-silenced: Expected not to see output. The task is chatty but does not have commands and has a silenced dependency on a chatty task.")
@@ -2519,7 +2518,7 @@ func TestForce(t *testing.T) {
task.WithForceAll(tt.forceAll),
)
require.NoError(t, e.Setup())
require.NoError(t, e.Run(context.Background(), &task.Call{Task: "task-with-dep"}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: "task-with-dep"}))
})
}
}
@@ -2579,10 +2578,10 @@ func TestWildcard(t *testing.T) {
)
require.NoError(t, e.Setup())
if test.wantErr {
require.Error(t, e.Run(context.Background(), &task.Call{Task: test.call}))
require.Error(t, e.Run(t.Context(), &task.Call{Task: test.call}))
return
}
require.NoError(t, e.Run(context.Background(), &task.Call{Task: test.call}))
require.NoError(t, e.Run(t.Context(), &task.Call{Task: test.call}))
assert.Equal(t, test.expectedOutput, buff.String())
})
}