Commit aa2e5de
ci: pin Taskfile tool versions on Linux and Windows (phase 1 of #277)
Refs #277. Replaces `latest` with concrete semver in 9 Taskfile
*_VERSION maps (27 of 30 tools pinned; pwsh, actionlint, and
markdownlint-cli2 deliberately left at latest — see deferred list).
Pinned values match those proposed in closed PR #281.
Also tightens `.taskfiles/scripts/install_terraform.sh` to handle
HashiCorp's apt packaging: the repo sometimes publishes the bare
upstream version (`terraform=1.15.4`) and sometimes a Debian
revision (`terraform=1.15.4-1`). The script now tries the bare
form first and falls back to the `-1` form so a single pinned
semver in the Taskfile resolves either way. This is the only
script change in this PR; it is included because Terraform is a
high-value supply-chain target and leaving it unpinned would
substantially weaken the change.
Coverage after this commit
- 27 of 30 CI-reachable install paths are pinned. Every
`task …` install target invoked by .github/workflows/
resolves to a fixed version except for actionlint and
markdownlint-cli2 (see deferred list).
- Linux and Windows developer machines: pinned for 27 tools.
- macOS developers using the repo's devcontainer: pinned for
27 tools (devcontainer is Linux-based).
- macOS developers running tasks natively on the host: still
use `_install:brew`, which today maps to formula names like
`bicep@0.43.8` that Homebrew does not publish. Native-macOS
setup is therefore expected to fail until phase 2 of #277
replaces the brew path; the devcontainer is the supported
macOS workflow in the meantime.
Explicitly out of scope (deferred to follow-ups). None introduces
a new silent supply-chain regression in CI:
- actionlint kept at `latest` because install_actionlint.sh
prepends a `v` prefix that upstream download-actionlint.bash
rejects — wrapper bug must be fixed first (FU-2)
- markdownlint-cli2 kept at `latest` because the
internal:command:version precondition (`grep -F` against
`markdownlint-cli2 --help`) fails at the pinned value and
needs version-check normalization first (FU-1)
- pwsh kept at `latest` because setup_pwsh.sh `die`s on any
non-`latest` value; pinning pwsh requires the script rewrite
tracked alongside SHA verification (FU-3)
- _internal.Taskfile.yml v-prefix normalization (FU-1)
- installer-script v-prefix stripping (FU-2)
- setup_pwsh.sh direct-download with SHA verification (FU-3)
- _install:winget `ignore_error: true` pre-existing soft-fail
- Native-macOS supply-chain hardening / phase 2 of #277
- Renovate automation (FU-7)
- Top-of-map docblock convention (FU-8)
- Devcontainer feature pinning (FU-9)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 24145e5 commit aa2e5de
10 files changed
Lines changed: 35 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
88 | | - | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
89 | 94 | | |
90 | 95 | | |
91 | 96 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
0 commit comments