Skip to content

Commit c41b30a

Browse files
committed
planning: revise 2.1-build-git-filter-repo-ci plan to sequential single wave
1 parent 18d3710 commit c41b30a

1 file changed

Lines changed: 31 additions & 25 deletions

File tree

  • .cat/issues/v2/v2.1/build-git-filter-repo-ci

.cat/issues/v2/v2.1/build-git-filter-repo-ci/plan.md

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,36 +26,42 @@ None
2626
## Sub-Agent Waves
2727

2828
### Wave 1
29-
- Create `.github/workflows/build-git-filter-repo.yml` file with full workflow definition
30-
- Build matrix for 4 platforms: linux-x64, linux-aarch64, macos-x64, macos-aarch64
29+
30+
Execute the following steps **in order**. Steps 2 and 3 are git/CLI operations with no file commits.
31+
32+
**Step 1: Create CI workflow file**
33+
- Create `.github/workflows/build-git-filter-repo.yml` with the full workflow definition:
34+
- Build matrix for 4 platforms: `linux-x64`, `linux-aarch64`, `macos-x64`, `macos-aarch64`
3135
- PyInstaller to create standalone binaries
32-
- SHA256 checksum generation for all artifacts
36+
- SHA256 checksum generation for each platform artifact
3337
- GitHub release creation with checksums in release notes
34-
- Files: `.github/workflows/build-git-filter-repo.yml`
38+
- Commit both the workflow file AND an index.json progress update together:
39+
- Workflow file: `.github/workflows/build-git-filter-repo.yml`
40+
- index.json: set `"progress": 50` (keep `"status": "open"`)
41+
- Commit message: `feature: add GitHub Actions CI workflow for git-filter-repo binary builds`
3542

36-
### Wave 2
37-
- Push the branch to GitHub remote to make the workflow available
38-
- Command: `git push -u origin 2.1-build-git-filter-repo-ci` (or current branch name)
39-
- Files: (git push only)
43+
**Step 2: Push branch to GitHub remote**
44+
- Run: `git push -u origin 2.1-build-git-filter-repo-ci`
45+
- This is a git push only — no new commit needed
4046

41-
### Wave 3
42-
- Trigger the workflow via GitHub Actions `workflow_dispatch`
43-
- Command: `gh workflow run build-git-filter-repo.yml --ref <branch-name>`
44-
- Wait for CI to complete and all 4 platform builds to succeed
45-
- Command: Poll `gh run list --workflow=build-git-filter-repo.yml --limit 1` until status is `completed`
46-
- Files: (CI execution only)
47+
**Step 3: Trigger CI workflow and wait for completion**
48+
- Trigger: `gh workflow run build-git-filter-repo.yml --ref 2.1-build-git-filter-repo-ci`
49+
- Poll until complete: `gh run list --workflow=build-git-filter-repo.yml --limit 1 --json status,conclusion`
50+
- Wait for all 4 platform jobs to succeed (status=completed, conclusion=success)
51+
- If any job fails, report the failure and stop
4752

48-
### Wave 4
49-
- Download SHA256 artifacts from the completed CI run
50-
- Extract RELEASE_TAG from the CI build output
51-
- Download `.sha256` files from GitHub release or CI artifacts
52-
- Update `plugin/.git-filter-repo-config/release.conf` with:
53-
- `RELEASE_TAG` (from CI run tag or "git-filter-repo-latest")
54-
- `PLATFORM_SHA256_linux_x64` (from git-filter-repo-linux-x64.sha256)
55-
- `PLATFORM_SHA256_linux_aarch64` (from git-filter-repo-linux-aarch64.sha256)
56-
- `PLATFORM_SHA256_macos_x64` (from git-filter-repo-macos-x64.sha256)
57-
- `PLATFORM_SHA256_macos_aarch64` (from git-filter-repo-macos-aarch64.sha256)
58-
- Files: `plugin/.git-filter-repo-config/release.conf`
53+
**Step 4: Collect SHA256 hashes and update release.conf**
54+
- Download the `.sha256` artifact files from the completed CI run using `gh run download`
55+
- Update `plugin/.git-filter-repo-config/release.conf` with the real SHA256 values:
56+
- `RELEASE_TAG` — from the CI run's tag or release name
57+
- `PLATFORM_SHA256_linux_x64` — from `git-filter-repo-linux-x64.sha256`
58+
- `PLATFORM_SHA256_linux_aarch64` — from `git-filter-repo-linux-aarch64.sha256`
59+
- `PLATFORM_SHA256_macos_x64` — from `git-filter-repo-macos-x64.sha256`
60+
- `PLATFORM_SHA256_macos_aarch64` — from `git-filter-repo-macos-aarch64.sha256`
61+
- Final commit with both the updated release.conf AND the closed index.json:
62+
- release.conf: `plugin/.git-filter-repo-config/release.conf`
63+
- index.json: set `"status": "closed"`, `"progress": 100`
64+
- Commit message: `feature: update release.conf with real SHA256 hashes from CI builds`
5965

6066
## Post-conditions
6167
- [ ] `.github/workflows/build-git-filter-repo.yml` exists with all 4 platform build configs

0 commit comments

Comments
 (0)