From b70ed5066e2338e74de97fdb0c54b17ad9b27317 Mon Sep 17 00:00:00 2001 From: Pete Davison Date: Fri, 28 Jun 2024 15:16:51 +0000 Subject: [PATCH] feat: add test --- task_test.go | 20 +++++++++++++++++++ testdata/run_once_shared_deps/Taskfile.yml | 11 ++++++++++ .../run_once_shared_deps/library/Taskfile.yml | 9 +++++++++ .../service-a/Taskfile.yml | 15 ++++++++++++++ .../service-a/src/imasource.go | 1 + .../service-b/Taskfile.yml | 15 ++++++++++++++ .../service-b/src/imasource.go | 1 + 7 files changed, 72 insertions(+) create mode 100644 testdata/run_once_shared_deps/Taskfile.yml create mode 100644 testdata/run_once_shared_deps/library/Taskfile.yml create mode 100644 testdata/run_once_shared_deps/service-a/Taskfile.yml create mode 100644 testdata/run_once_shared_deps/service-a/src/imasource.go create mode 100644 testdata/run_once_shared_deps/service-b/Taskfile.yml create mode 100644 testdata/run_once_shared_deps/service-b/src/imasource.go diff --git a/task_test.go b/task_test.go index 25ce8b4089..0af4264090 100644 --- a/task_test.go +++ b/task_test.go @@ -1664,6 +1664,26 @@ func TestRunOnlyRunsJobsHashOnce(t *testing.T) { tt.Run(t) } +func TestRunOnceSharedDeps(t *testing.T) { + const dir = "testdata/run_once_shared_deps" + + var buff bytes.Buffer + e := task.Executor{ + Dir: dir, + Stdout: &buff, + Stderr: &buff, + Force: true, + } + require.NoError(t, e.Setup()) + require.NoError(t, e.Run(context.Background(), &ast.Call{Task: "build"})) + + expected := `task: Task "service-b:library:build" is up to date +task: Task "service-b:build" is up to date +task: Task "service-a:build" is up to date +` + assert.Equal(t, expected, buff.String()) +} + func TestDeferredCmds(t *testing.T) { const dir = "testdata/deferred" var buff bytes.Buffer diff --git a/testdata/run_once_shared_deps/Taskfile.yml b/testdata/run_once_shared_deps/Taskfile.yml new file mode 100644 index 0000000000..bd26ce6d71 --- /dev/null +++ b/testdata/run_once_shared_deps/Taskfile.yml @@ -0,0 +1,11 @@ +version: '3' + +includes: + service-a: ./service-a + service-b: ./service-b + +tasks: + build: + deps: + - service-a:build + - service-b:build diff --git a/testdata/run_once_shared_deps/library/Taskfile.yml b/testdata/run_once_shared_deps/library/Taskfile.yml new file mode 100644 index 0000000000..d24bf90605 --- /dev/null +++ b/testdata/run_once_shared_deps/library/Taskfile.yml @@ -0,0 +1,9 @@ +version: '3' + +tasks: + build: + run: once + cmds: + - echo "build library" + sources: + - src/**/* diff --git a/testdata/run_once_shared_deps/service-a/Taskfile.yml b/testdata/run_once_shared_deps/service-a/Taskfile.yml new file mode 100644 index 0000000000..ed3dcab208 --- /dev/null +++ b/testdata/run_once_shared_deps/service-a/Taskfile.yml @@ -0,0 +1,15 @@ +version: '3' + +includes: + library: + taskfile: ../library/Taskfile.yml + dir: ../library + +tasks: + build: + run: once + deps: [library:build] + cmds: + - echo "build a" + sources: + - src/**/* diff --git a/testdata/run_once_shared_deps/service-a/src/imasource.go b/testdata/run_once_shared_deps/service-a/src/imasource.go new file mode 100644 index 0000000000..06ab7d0f9a --- /dev/null +++ b/testdata/run_once_shared_deps/service-a/src/imasource.go @@ -0,0 +1 @@ +package main diff --git a/testdata/run_once_shared_deps/service-b/Taskfile.yml b/testdata/run_once_shared_deps/service-b/Taskfile.yml new file mode 100644 index 0000000000..b72c8680b3 --- /dev/null +++ b/testdata/run_once_shared_deps/service-b/Taskfile.yml @@ -0,0 +1,15 @@ +version: '3' + +includes: + library: + taskfile: ../library/Taskfile.yml + dir: ../library + +tasks: + build: + run: once + deps: [library:build] + cmds: + - echo "build b" + sources: + - src/**/* diff --git a/testdata/run_once_shared_deps/service-b/src/imasource.go b/testdata/run_once_shared_deps/service-b/src/imasource.go new file mode 100644 index 0000000000..06ab7d0f9a --- /dev/null +++ b/testdata/run_once_shared_deps/service-b/src/imasource.go @@ -0,0 +1 @@ +package main