ci: update binfmt to qemu-v10.2.3-68 to unblock argocd-helmfile publishing - #4543
Draft
kb-yusukekimura wants to merge 4 commits into
Draft
ci: update binfmt to qemu-v10.2.3-68 to unblock argocd-helmfile publishing#4543kb-yusukekimura wants to merge 4 commits into
kb-yusukekimura wants to merge 4 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
chatwork/argocd-helmfileが 2026-07-09 の3.4.4-1.7.0を最後に公開できていません。push job が連続で失敗しており、argo-cd 3.4.5 / 3.4.6 / 3.5.0 と helmfile 1.7.1〜1.7.3 が利用者に届いていない状態です。
原因は CI の binfmt ピンが
tonistiigi/binfmt:qemu-v7.0.0-28(QEMU 7.0.0、2022年4月)に固定されていることです。argo-cd 上流が v3.4.5 で土台を Ubuntu 25.10 から 26.04 LTS に変更した結果、古い QEMU では helm 展開時の
tarがFunction not implemented(ENOSYS)で落ちます。push job はマージ後にしか走らないため、PR の CI は常に緑に見えていました。これが4週間気付かれなかった理由です。
変更内容
qemu-v7.0.0-28からqemu-v10.2.3-68へ更新Set up QEMUを削除argocd-helmfile/Dockerfile.tplとDockerfileにエミュレーション制約を説明するコメントを追加test job から QEMU を外してよい根拠
--platform linux/amd64,linux/arm64は31箇所あり、すべてpushターゲット配下。buildターゲットにクロスビルドは存在しないdocker-compose*.ymlにplatform:指定なしFROM --platform=を使う Dockerfile なし副次効果として、test job に出ていた
Failed to restore/cache write denied: token has no writable scopesの警告も解消される見込みです。argocd-helmfile にコメントを足している理由
ルート
Makefileのci:diffは変更ファイルのディレクトリ名を出力しますが、.github/workflows/integration.yamlはsedの処理で空文字になり脱落します。ワークフローだけを変更した PR をマージしても
ci:diffが空になり、argocd-helmfile は再ビルドされません。公開を実際に再開させるために
argocd-helmfile/配下にも変更が必要でした。DockerfileはDockerfile.tplからの生成物(variant.modの provisioners で宣言)のため、両方に同じコメントを入れています。コメントにテンプレート変数を含めていないので、次回の再生成でも差分は出ません。検証
(検証ジョブ実行後に追記します)
レビュー時の注意
現在は退行検証用の一時ジョブ(
verify-emulation-setup/verify-emulation)と一時 input を含むドラフトです。31ディレクトリ × 両エミュレート方向 = 62ジョブを
--output=type=cacheonly(Docker Hub には書き込まない)で回し、新しい binfmt が他イメージに退行を起こさないことを確認します。マージ前にこれらの一時ブロックを削除して ready for review にします。