Skip to content

Commit b6513b2

Browse files
committed
Configure task dependencies to avoid redundant execution
The "Task" task runner tool is used to perform common development operations for the 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 46e1cd4 commit b6513b2

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

Taskfile.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ tasks:
179179
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/deploy-cobra-mkdocs-versioned-poetry/Taskfile.yml
180180
docs:generate:
181181
desc: Create all generated documentation content
182+
run: when_changed
182183
deps:
183184
- task: go:cli-docs
184185
- task: go:rule-docs
@@ -495,6 +496,7 @@ tasks:
495496
Install dependencies managed by npm.
496497
Environment variable parameters:
497498
- PROJECT_PATH: Path of the npm-managed project (default: {{.DEFAULT_NPM_PROJECT_PATH}}).
499+
run: when_changed
498500
dir: |
499501
"{{default .DEFAULT_NPM_PROJECT_PATH .PROJECT_PATH}}"
500502
cmds:

0 commit comments

Comments
 (0)