From 0fc26a43a97ca3df2ecc742e8613984becb26dc6 Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Thu, 14 Aug 2025 18:34:38 +0200 Subject: [PATCH] chore: bump minimun version to 1.24 (#2377) --- .github/workflows/lint.yml | 2 +- .github/workflows/test.yml | 2 +- executor_test.go | 3 +- go.mod | 3 +- internal/fingerprint/task_test.go | 3 +- task_test.go | 151 +++++++++++++++--------------- 6 files changed, 80 insertions(+), 84 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4270a5b3..ab61482e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -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 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fac3fb6e..4ccb2908 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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: diff --git a/executor_test.go b/executor_test.go index 0e4d667c..ddf735c9 100644 --- a/executor_test.go +++ b/executor_test.go @@ -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) diff --git a/go.mod b/go.mod index 9e5079dd..497a8106 100644 --- a/go.mod +++ b/go.mod @@ -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 diff --git a/internal/fingerprint/task_test.go b/internal/fingerprint/task_test.go index 5c81c010..3452b19c 100644 --- a/internal/fingerprint/task_test.go +++ b/internal/fingerprint/task_test.go @@ -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), diff --git a/task_test.go b/task_test.go index 927ff29f..769429a3 100644 --- a/task_test.go +++ b/task_test.go @@ -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()) }) }