Fix local CI: Dynamic task lists and aarch64 support
Summary
This PR fixes several issues identified during local CI testing on macOS ARM64:
- Support dynamic task lists in reproduce command (enables --until qa_sanity)
- Add Ubuntu 24.04 'any' architecture package list for aarch64 detection
- Fix container .git detection (replace worktree pointer with directory for Makepkgs)
- Add task validation with helpful error messages
Changes
-
build/ci/ci-run.py:
- Dynamic task discovery from platform YAML instead of hardcoded list
- Proper validation of --until parameter
- Container setup ensures .git directory exists for Makepkgs detection
-
qa/admin/package-lists/Ubuntu+24.04+any:
- New package list for 'any' architecture variant of Ubuntu 24.04
- Enables aarch64 builds on ARM64 macOS
Testing
Local testing on macOS M4 Pro ARM64 with --quick mode and --until qa_sanity parameter.
Full QA test run validation in progress to confirm end-to-end functionality.
Update: Git Directory Copying Fix Verified
Build test successful! ✅
The latest commit () replaces the Reinitialized existing Git repository in /Users/psmith/dev/pcp/pcp-local-ci/.git/ band-aid fix with a proper solution: copying the complete directory structure to the container.
What was fixed:
- Changed from partial copy () to full copy including hidden files ()
- This ensures Makepkgs has access to the full git repository for:
git status(checking for changes)git checkout(restoring VERSION.pcp)git archive/git ls-files(creating source tarballs)
Test Results:
- ✅ Container built successfully
- ✅ PCP sources with complete .git directory copied to container
- ✅ QA packages installed (45 minutes)
- ✅
./Makepkgsran without git repository errors - ✅ .deb packages created successfully
- ✅ Total build time: 17 minutes
This fix is compatible with clean git checkouts (not worktrees). The previous worktree-specific issues should now be resolved.
Update: Git Directory Copying Fix Verified
Build test successful! ✅
The latest commit replaces the git init band-aid fix with a proper solution: copying the complete .git directory structure to the container.
What was fixed:
- Changed from partial copy (podman cp path/) to full copy including hidden files (podman cp path/.)
- This ensures Makepkgs has access to the full git repository for:
- git status (checking for changes)
- git checkout (restoring VERSION.pcp)
- git archive / git ls-files (creating source tarballs)
Test Results:
- ✅ Container built successfully
- ✅ PCP sources with complete .git directory copied to container
- ✅ QA packages installed
- ✅ ./Makepkgs ran without git repository errors
- ✅ .deb packages created successfully
- ✅ Total build time: 17 minutes
This fix is compatible with clean git checkouts (not worktrees).