ci: i18nチェックを実際に落ちるようにし、誰も見ないカバレッジを削除#86
Merged
yuga-hashimoto merged 2 commits intoJul 25, 2026
Conversation
Three cleanups to CI, following a pass over what each check actually buys. i18n-check never failed. It has no `exit 1` — it only emitted `::warning` annotations, so it was structurally incapable of going red. It was also right about something nobody acted on: `model_visibility_title`, `_row` and `_caption` were missing from all six non-Japanese locales for long enough to ship. A check that stays green while the thing it checks is broken costs more trust than it earns, so missing keys are now errors and fail the job. Verified against the current tree first — there are no gaps today, so this does not turn main red on landing. The jacoco coverage report had no threshold, no badge, no README mention and no upload to any coverage service. It generated HTML into an artifact that nobody opens. Removed the report task, the plugin and both workflow steps; if coverage is wanted later it should come back with a rule that can actually fail. `.last-release` was left over from v0.2.0 (`tag=v0.2.0`, a source_sha and a workflow_run id) and no workflow, script or doc reads it. release.yml resolves the tag from `.release-version`. Verified `testDebugUnitTest`, `lintDebug`, `assembleDebug`, `detekt` and `spotlessCheck`, and dry-ran the new i18n gate against the current resources. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L3eN8AmoAcBDCTEeMTY3ba
Its path filter only listed the string resources, so the previous commit — which changes what the job does — did not run it. Adding the workflow's own path means this push exercises the new blocking behaviour against the real resources instead of only the local dry run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L3eN8AmoAcBDCTEeMTY3ba
yuga-hashimoto
marked this pull request as ready for review
July 25, 2026 13:45
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.
残っている CI を一つずつ「実際に何を買っているか」で見直した結果の3件です。
1. i18n-check を実際に落ちるようにした
このチェックは構造上、絶対に失敗しませんでした。
exit 1がどこにもなく、::warningを出すだけです。しかも、指摘自体は正しかったのに誰も対応していませんでした。
model_visibility_title/_row/_captionが日本語以外の6ロケール全部で欠落した状態でリリースまで到達しています。チェック対象が壊れているのに緑のままのチェックは、あることで CI 全体の信頼を下げます。 欠落を
::errorにしてexit 1するようにしました。現在のツリーで先に空実行して確認済みで、欠落ゼロなのでマージしても main は赤くなりません。
2. jacoco カバレッジを削除
violationRulesなし)誰も開かない HTML をアーティファクトに置いているだけでした。レポートタスク・プラグイン・ワークフローの2ステップを削除しています。
カバレッジが必要になったら、実際に落ちるルール付きで戻すべきです。
3.
.last-releaseを削除v0.2.0 時点の残骸です。
ワークフロー・スクリプト・ドキュメントのどれからも読まれていません(
release.ymlはタグを.release-versionから解決します)。触らなかったもの
pages/**変更時のみ。妥当気づいた点(このPRでは未対応)
release.ymlは.release-versionを書き換えて main に push するだけでリリースが公開されます。ガードは何もないので、誤って触れば意図しないリリースが出ます。タグ重複チェックや environment protection を足すことはできますが、運用の好みが絡むので手を付けていません。検証
testDebugUnitTest/lintDebug/assembleDebug/detekt/spotlessCheck→ 成功🤖 Generated with Claude Code
https://claude.ai/code/session_01L3eN8AmoAcBDCTEeMTY3ba
Generated by Claude Code