Skip to content

Commit 96e27b4

Browse files
author
Matthew
committed
Merge branch 'docs/story-10-2-review' into 'main'
docs(standards): update story 10.2 to review status See merge request orgdocs/development-standards!30
2 parents 3b4d994 + 905b75d commit 96e27b4

2 files changed

Lines changed: 31 additions & 17 deletions

File tree

_bmad-output/implementation-artifacts/10-2-fix-version-manifest-ci-job.md

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Story 10.2: Fix Version-Manifest CI Job for Releases
22

3-
Status: ready-for-dev
3+
Status: review
44

55
## Story
66

@@ -17,24 +17,24 @@ so that users can see exactly which tool versions are included in each container
1717

1818
## Tasks / Subtasks
1919

20-
- [ ] Task 1: Investigate why the version-manifest job was skipped in v1.6.0 (AC: 1)
21-
- [ ] 1.1 Review `build.yml` workflow to understand the version-manifest job's trigger conditions
22-
- [ ] 1.2 Check the v1.6.0 build run logs for the version-manifest job
23-
- [ ] 1.3 Identify the root cause (conditional gate, dependency, permissions, or other)
20+
- [x] Task 1: Investigate why the version-manifest job was skipped in v1.6.0 (AC: 1)
21+
- [x] 1.1 Review `build.yml` workflow to understand the version-manifest job's trigger conditions
22+
- [x] 1.2 Check the v1.6.0 build run logs for the version-manifest job
23+
- [x] 1.3 Identify the root cause (conditional gate, dependency, permissions, or other)
2424

25-
- [ ] Task 2: Fix the version-manifest job (AC: 1, 2)
26-
- [ ] 2.1 Apply the fix based on root cause analysis
27-
- [ ] 2.2 Verify the fix doesn't break other jobs in the build pipeline
25+
- [x] Task 2: Fix the version-manifest job (AC: 1, 2)
26+
- [x] 2.1 Apply the fix based on root cause analysis
27+
- [x] 2.2 Verify the fix doesn't break other jobs in the build pipeline
2828

29-
- [ ] Task 3: Verify the manifest content (AC: 3)
30-
- [ ] 3.1 Run `scripts/report-tool-versions.sh` locally inside the container to validate output
31-
- [ ] 3.2 Confirm all 8 language ecosystems are represented
32-
- [ ] 3.3 Confirm Terragrunt version is included
29+
- [x] Task 3: Verify the manifest content (AC: 3)
30+
- [x] 3.1 Run `scripts/report-tool-versions.sh` locally inside the container to validate output
31+
- [x] 3.2 Confirm all 8 language ecosystems are represented
32+
- [x] 3.3 Confirm Terragrunt version is included
3333

34-
- [ ] Task 4: Verify devrail.dev versions page (AC: 4)
35-
- [ ] 4.1 Check if the devrail.dev site has automation to pull version manifests from releases
36-
- [ ] 4.2 If automated, verify it picks up the new release asset
37-
- [ ] 4.3 If manual, update the versions page content
34+
- [x] Task 4: Verify devrail.dev versions page (AC: 4)
35+
- [x] 4.1 Check if the devrail.dev site has automation to pull version manifests from releases
36+
- [x] 4.2 If automated, verify it picks up the new release asset
37+
- [x] 4.3 If manual, update the versions page content
3838

3939
## Dev Notes
4040

@@ -54,8 +54,22 @@ so that users can see exactly which tool versions are included in each container
5454

5555
### Agent Model Used
5656

57+
Claude Opus 4.6
58+
5759
### Debug Log References
5860

61+
- v1.6.0 build run showed version-manifest job completed in 0s (skipped)
62+
- `docker run ghcr.io/devrail-dev/dev-toolchain:1.6.0 bash /opt/devrail/scripts/report-tool-versions.sh` — produced valid JSON with 38 tools across 8 ecosystems
63+
5964
### Completion Notes List
6065

66+
- **Root cause**: GitHub Actions transitive `needs` chain skip behavior. When `auto-version` job is skipped (tag push trigger), downstream jobs inherit the skip even through intermediate jobs that use `always()`. The `version-manifest` job had `needs: [build-and-push]` but its `if` condition (`startsWith(github.ref, 'refs/tags/v')`) wasn't enough — GitHub's default behavior skips jobs when any ancestor in the needs chain was skipped.
67+
- **Fix**: Changed `version-manifest` job's `if` from `startsWith(github.ref, 'refs/tags/v')` to `always() && needs.build-and-push.result == 'success' && startsWith(github.ref, 'refs/tags/v')`. The `always()` function overrides the default skip behavior, and the explicit success check ensures it only runs when the build actually succeeded.
68+
- **Manifest verification**: `report-tool-versions.sh` produces valid JSON output with all 8 language ecosystems (Python, Bash, Terraform, Ansible, Ruby, Go, JavaScript/TypeScript, Rust) plus universal security tools and Terragrunt.
69+
- **Devrail.dev versions page**: Already working — `update-versions.yml` workflow runs on `release: published` events and creates PRs to update the versions page. PR #12 was merged to fix org-level Actions permissions that were blocking this.
70+
- **Note**: The `:v1` floating tag appears stale (different image ID from `:1.6.0`). This is caused by the `docker/metadata-action` `v{{major}}` pattern producing `:v1` tag (with v prefix) while `build-and-push` also produces `:1.6.0` (without v prefix). This is a separate issue — the floating tag works correctly, it just may not have been updated for v1.6.0 specifically.
71+
6172
### File List
73+
74+
- `dev-toolchain/.github/workflows/build.yml` — fixed `version-manifest` job `if` condition (line 123)
75+
- PR: https://github.com/devrail-dev/dev-toolchain/pull/10

_bmad-output/implementation-artifacts/sprint-status.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ development_status:
113113

114114
epic-10: in-progress
115115
10-1-configure-gitlab-github-mirror-ci: done
116-
10-2-fix-version-manifest-ci-job: ready-for-dev
116+
10-2-fix-version-manifest-ci-job: review
117117
10-3-write-v160-release-blog-post: ready-for-dev
118118
epic-10-retrospective: optional
119119

0 commit comments

Comments
 (0)