Skip to content

24 bug pipeline docker build fail#25

Merged
maximedogawa merged 3 commits into
mainfrom
24-bug-pipeline-docker-build-fail
Apr 13, 2026
Merged

24 bug pipeline docker build fail#25
maximedogawa merged 3 commits into
mainfrom
24-bug-pipeline-docker-build-fail

Conversation

@maximedogawa
Copy link
Copy Markdown
Collaborator

@maximedogawa maximedogawa commented Apr 13, 2026

Summary by CodeRabbit

  • New Features

    • Added GHCR verification workflow for improved image reliability.
  • Chores

    • Updated CI/CD pipeline to support native multi-architecture builds on ARM runners.
    • Simplified container image repository paths.
  • Documentation

    • Updated tool image references and CI build behavior documentation.

…hing

- Adjusted the `tools-publish.yml` workflow to use `github.repository_owner` for Docker login instead of `github.actor`.
- Reformatted the table in `manual-publish.md` for improved readability, ensuring consistent alignment of headers and values.
- Removed the deprecated `compute-image-tags.sh` script and introduced `merge-multiarch-manifest.sh` to handle merging single-arch image references into a multi-arch tag.
- Updated the `tools-publish.yml` workflow to support building images for both `amd64` and `arm64` architectures, utilizing conditional runners based on architecture.
- Enhanced documentation in `manual-publish.md` to clarify the CI build process for different architectures and the implications of using QEMU for arm64 builds.
- Introduced a new GitHub Actions workflow (`ghcr-verify.yml`) to verify GHCR login by pushing a minimal image and performing a read check.
- Added a Dockerfile for the verification context to facilitate the image push.
- Updated tool image references in various files to reflect the new repository structure (`ghcr.io/pengine-ai/pengine-<suffix>` instead of `ghcr.io/pengine-ai/tools/pengine-<suffix>`).
- Enhanced the `write-publish-summary.sh` script to include optional runner architecture information in the summary output.
@maximedogawa maximedogawa linked an issue Apr 13, 2026 that may be closed by this pull request
@maximedogawa maximedogawa merged commit 4a1d237 into main Apr 13, 2026
2 of 3 checks passed
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 13, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 54da9d06-bccf-4017-9f4f-92c14e122fab

📥 Commits

Reviewing files that changed from the base of the PR and between 2e5640f and 5666d12.

📒 Files selected for processing (11)
  • .github/ghcr-verify-context/Dockerfile
  • .github/scripts/tools-publish/compute-image-tags.sh
  • .github/scripts/tools-publish/merge-multiarch-manifest.sh
  • .github/scripts/tools-publish/write-publish-summary.sh
  • .github/workflows/ghcr-verify.yml
  • .github/workflows/tools-publish.yml
  • doc/tool-engine/manual-publish.md
  • src-tauri/src/modules/tool_engine/service.rs
  • src-tauri/src/modules/tool_engine/tools.json
  • src-tauri/src/modules/tool_engine/types.rs
  • tools/mcp-tools.json

📝 Walkthrough

Walkthrough

The pull request restructures the container image publishing pipeline to build images separately per architecture (amd64 and arm64) before merging them into a single multi-arch manifest, while also simplifying the GHCR repository path structure from pengine-ai/tools/pengine-* to pengine-ai/pengine-* and adding a GHCR verification workflow.

Changes

Cohort / File(s) Summary
GHCR Verification Infrastructure
.github/ghcr-verify-context/Dockerfile, .github/workflows/ghcr-verify.yml
New minimal Dockerfile (FROM scratch) and verification workflow that builds and pushes a probe image to GHCR, then validates pull-by-digest functionality.
Build and Publish Scripts
.github/scripts/tools-publish/compute-image-tags.sh, .github/scripts/tools-publish/merge-multiarch-manifest.sh, .github/scripts/tools-publish/write-publish-summary.sh
Deleted legacy compute-image-tags.sh script; added new merge-multiarch-manifest.sh for combining separate arch builds into a single manifest; updated write-publish-summary.sh to report multi-arch index details, CI host architecture, and staging tag warnings.
CI/CD Workflow
.github/workflows/tools-publish.yml
Changed runner to ubuntu-24.04-arm, replaced single combined multi-arch build with separate linux/amd64 and linux/arm64 builds tagged with arch-specific suffixes, integrated merge-multiarch-manifest.sh to unify outputs, and updated downstream signing/testing steps to use merged digest.
Documentation
doc/tool-engine/manual-publish.md
Updated GHCR repository path references and documented new CI behavior: per-architecture builds on ubuntu-24.04-arm with QEMU, manifest merge process, and staging tag notes.
Container Image References
src-tauri/src/modules/tool_engine/tools.json, src-tauri/src/modules/tool_engine/service.rs, src-tauri/src/modules/tool_engine/types.rs, tools/mcp-tools.json
Updated all references to the File Manager tool image from ghcr.io/pengine-ai/tools/pengine-file-manager to ghcr.io/pengine-ai/pengine-file-manager across config files and doc comments.

Sequence Diagram(s)

sequenceDiagram
    participant W as Workflow
    participant B as docker buildx
    participant R as GHCR Registry
    participant M as imagetools
    
    W->>B: Build linux/amd64 image
    B->>R: Push as :${VERSION}-ci-amd64-${RUN_ID}
    R-->>W: Return amd64 ref (AMD_REF)
    
    W->>B: Build linux/arm64 image
    B->>R: Push as :${VERSION}-ci-arm64-${RUN_ID}
    R-->>W: Return arm64 ref (ARM_REF)
    
    W->>M: imagetools create with AMD_REF + ARM_REF
    M->>R: Publish manifest list as :${VERSION}, :latest
    R-->>W: Return manifest digest
    
    W->>W: Write digest to GITHUB_OUTPUT
    W->>R: Later: pull by digest for verification
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • 12 feature software disripution via docker #22: Modifies the same tool publishing pipeline and tool catalog image references (.github/workflows/tools-publish.yml, tools.json, tool_engine source files), introducing related structural changes to OCI image paths and CI strategy.

Poem

🐰 A manifest made manifest, divided then recombined,
Separate architectures in harmony we find!
amd64 and arm64 dance in perfect tandem,
From split builds to merged glory—a rabbit's anthem! ✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 24-bug-pipeline-docker-build-fail

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@maximedogawa maximedogawa deleted the 24-bug-pipeline-docker-build-fail branch April 13, 2026 22:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Pipeline docker build fail

1 participant