Skip to content

Use Linux architecture names in output artifact filenames:#49

Merged
mergify[bot] merged 1 commit intotinkerbell:mainfrom
jacobweinstock:refactor-cli-oci
Mar 9, 2026
Merged

Use Linux architecture names in output artifact filenames:#49
mergify[bot] merged 1 commit intotinkerbell:mainfrom
jacobweinstock:refactor-cli-oci

Conversation

@jacobweinstock
Copy link
Copy Markdown
Member

Description

Tinkerbell iPXE scripts are built around architecture naming in a specific way. x86_64 and aarch64. This makes CaptainOS backward compatible.

Fixes: #

How Has This Been Tested?

How are existing users impacted? What migration steps/scripts do we need?

Checklist:

I have:

  • updated the documentation and/or roadmap (if required)
  • added unit or e2e tests
  • provided instructions on how to upgrade

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates CaptainOS artifact naming to use Linux-style architecture strings (x86_64, aarch64) in user-facing output filenames (to better align with Tinkerbell/iPXE expectations), and adjusts build/release paths accordingly.

Changes:

  • Add output_arch to ArchInfo and use it for output artifact filenames across build, checksums, QEMU, ISO, and OCI release packaging.
  • Rename initramfs artifact references to remove the .cpio.zst suffix and update ISO GRUB/initramfs staging accordingly.
  • Update CI workflow and docs/README examples to reflect the new naming.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
docs/design-decisions/oci-tooling-buildah-skopeo.md Update example artifact filenames to x86_64 naming.
captain/util.py Introduce ArchInfo.output_arch and map amd64→x86_64, arm64→aarch64.
captain/tools.py Comment wording updated about why UPX isn’t used.
captain/qemu.py QEMU boot now looks for vmlinuz/initramfs artifacts using output_arch.
captain/oci/_build.py OCI artifact collection/checksums now use output_arch in filenames.
captain/iso.py ISO contents and GRUB config now use initramfs (no .cpio.zst) and ISO output filename uses output_arch.
captain/config.py Update initramfs output docstring (less specific about filename).
captain/cli/_stages.py ISO idempotency path updated to output_arch.
captain/cli/_commands.py Checksums default file set and error text updated to output_arch and new initramfs name.
captain/artifacts.py Collected kernel/initramfs/ISO artifact names now use output_arch; initramfs suffix removed.
README.md Update initramfs naming examples and release artifact naming to x86_64/aarch64.
.github/workflows/ci.yml CI updated to copy/upload ISO/initramfs artifacts using output_arch mapping in matrix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Tinkerbell iPXE scripts are built around architecture naming in a specific way.
x86_64 and aarch64. This makes CaptainOS backward compatible.

Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jacobweinstock jacobweinstock added the ready-to-merge Signal Mergify to merge the PR label Mar 9, 2026
@mergify mergify bot added the queued label Mar 9, 2026
mergify bot added a commit that referenced this pull request Mar 9, 2026
@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Mar 9, 2026

Merge Queue Status

This pull request spent 3 minutes 7 seconds in the queue, including 2 minutes 56 seconds running CI.

Required conditions to merge
  • check-success=build-initramfs (amd64)
  • check-success=build-initramfs (arm64)
  • check-success=build-iso (amd64)
  • check-success=build-iso (arm64)
  • check-success=build-kernel (amd64)
  • check-success=build-kernel (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-neutral = build-initramfs (amd64)
    • check-skipped = build-initramfs (amd64)
    • check-success = build-initramfs (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-neutral = build-initramfs (arm64)
    • check-skipped = build-initramfs (arm64)
    • check-success = build-initramfs (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-neutral = build-kernel (amd64)
    • check-skipped = build-kernel (amd64)
    • check-success = build-kernel (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-neutral = build-kernel (arm64)
    • check-skipped = build-kernel (arm64)
    • check-success = build-kernel (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-neutral = build-iso (amd64)
    • check-skipped = build-iso (amd64)
    • check-success = build-iso (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-neutral = build-iso (arm64)
    • check-skipped = build-iso (arm64)
    • check-success = build-iso (arm64)
  • #changes-requested-reviews-by=0
  • base=main
  • check-success=DCO
  • check-success=download-tools (amd64)
  • check-success=download-tools (arm64)
  • label!=do-not-merge
  • label=ready-to-merge
  • queue-position>=0
  • any of:
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = download-tools (amd64)
    • check-neutral = download-tools (amd64)
    • check-skipped = download-tools (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = download-tools (arm64)
    • check-neutral = download-tools (arm64)
    • check-skipped = download-tools (arm64)

Reason

The merge conditions cannot be satisfied due to failing checks

Failing checks:

Hint

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio queue comment.

@mergify mergify bot added dequeued and removed queued labels Mar 9, 2026
@jacobweinstock
Copy link
Copy Markdown
Member Author

@Mergifyio queue

@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Mar 9, 2026

Merge Queue Status

This pull request spent 12 minutes 48 seconds in the queue, including 12 minutes 25 seconds running CI.

Required conditions to merge
  • #changes-requested-reviews-by=0
  • base=main
  • check-success=DCO
  • check-success=build-initramfs (amd64)
  • check-success=build-initramfs (arm64)
  • check-success=build-iso (amd64)
  • check-success=build-iso (arm64)
  • check-success=build-kernel (amd64)
  • check-success=build-kernel (arm64)
  • check-success=download-tools (amd64)
  • check-success=download-tools (arm64)
  • label!=do-not-merge
  • label=ready-to-merge
  • queue-position>=0
  • any of:
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-initramfs (amd64)
    • check-neutral = build-initramfs (amd64)
    • check-skipped = build-initramfs (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-initramfs (arm64)
    • check-neutral = build-initramfs (arm64)
    • check-skipped = build-initramfs (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-kernel (amd64)
    • check-neutral = build-kernel (amd64)
    • check-skipped = build-kernel (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-kernel (arm64)
    • check-neutral = build-kernel (arm64)
    • check-skipped = build-kernel (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = download-tools (amd64)
    • check-neutral = download-tools (amd64)
    • check-skipped = download-tools (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = download-tools (arm64)
    • check-neutral = download-tools (arm64)
    • check-skipped = download-tools (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-iso (amd64)
    • check-neutral = build-iso (amd64)
    • check-skipped = build-iso (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-iso (arm64)
    • check-neutral = build-iso (arm64)
    • check-skipped = build-iso (arm64)

@mergify mergify bot added the queued label Mar 9, 2026
mergify bot added a commit that referenced this pull request Mar 9, 2026
@mergify mergify bot removed the dequeued label Mar 9, 2026
@mergify mergify bot merged commit e728a8b into tinkerbell:main Mar 9, 2026
20 checks passed
@mergify mergify bot removed the queued label Mar 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Signal Mergify to merge the PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants