Skip to content

Commit 1ad4e40

Browse files
committed
Configure task dependencies to avoid redundant execution
The "Task" task runner tool is used to perform common development operations for this project. Tasks may call other tasks. Under certain conditions (most commonly when running a convenience "umbrella" which calls all tasks of a general type), this can result in the same task being called redundantly, which is inefficient. Worse, since task calls specified via the `deps` mapping of a task definition are executed concurrently, the multiple executions can conflict with each other and cause problems such as a spurious failure. This can be avoided by configuring tasks which may be called multiple times, and for which it never makes sense to execute multiple times with the same conditions, so that all but the first call will be ignored.
1 parent 03ca5d0 commit 1ad4e40

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Taskfile.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ tasks:
9595
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies-task/Taskfile.yml
9696
general:cache-dep-licenses:
9797
desc: Cache dependency license metadata
98+
run: when_changed
9899
deps:
99100
- task: general:prepare-deps
100101
cmds:
@@ -147,6 +148,7 @@ tasks:
147148
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-go-dependencies-task/Taskfile.yml
148149
general:prepare-deps:
149150
desc: Prepare project dependencies for license check
151+
run: when_changed
150152
# No preparation is needed for Go module-based projects.
151153

152154
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-go-task/Taskfile.yml
@@ -253,6 +255,7 @@ tasks:
253255
PROJECT_PATH: Path of the npm-managed project (default: {{.DEFAULT_NPM_PROJECT_PATH}}).
254256
dir: |
255257
"{{default .DEFAULT_NPM_PROJECT_PATH .PROJECT_PATH}}"
258+
run: when_changed
256259
cmds:
257260
- npm install
258261

@@ -374,6 +377,7 @@ tasks:
374377
Install dependencies managed by Poetry.
375378
Environment variable parameters:
376379
POETRY_GROUPS: Poetry dependency groups to install (default: install all dependencies).
380+
run: when_changed
377381
deps:
378382
- task: poetry:install
379383
cmds:

0 commit comments

Comments
 (0)