Skip to content

ci: setup-android の失敗を修正し JDK 25 LTS / Java 21 へ更新 - #13

Merged
5ym merged 3 commits into
masterfrom
ci/jdk25
Sep 16, 2026
Merged

5ym merged 3 commits into
masterfrom
ci/jdk25

Conversation

@5ym

@5ym 5ym commented Sep 16, 2026

Copy link
Copy Markdown
Owner

概要

CI が JDK とは無関係な箇所で落ちていたので修正し、あわせて JDK と Java 言語レベルを上げられるところまで上げる。

1. setup-android の失敗を修正

android-actions/setup-android@v4packages 入力の既定値 tools platform-tools に含まれる旧 SDK Tools (tools) が Google の SDK リポジトリから削除されており、sdkmanager が失敗していた。

Warning: Failed to find package 'tools'
Error: The process '.../sdkmanager' failed with exit code 1

Gradle が起動する前に落ちるため、#11 / #12 だけでなく master でも同様に失敗する状態だった。packages: platform-tools を明示して回避する。

2. setup 手順を composite action へ集約

3 ジョブ(test / instrumented-test / release)で JDK・Android SDK・Gradle の設定が丸ごと重複していたため、.github/actions/setup-build-env に切り出した。

Renovate の java-jdk 追跡は維持される。github-actions manager の対象パターンに /(^|/)action\.ya?ml$/ が含まれるため、composite action 内の java-version も従来どおり検出される。

3. ビルド JDK を 25 LTS へ

#12 と同内容。java-version: '17''25.0.4+101.0.LTS'

4. Java 言語レベルを 21 へ

compileOptionsVERSION_17VERSION_21

25 は不可能だった。AGP 9.4.0 内蔵の Kotlin コンパイラがサポートする jvmTarget は 24 までで、D8 に到達する前にコンパイルタスクの生成時点で落ちる。

> Could not create task ':app:compileDebugUnitTestKotlin'.
   > Unknown Kotlin JVM target: 25,
     available targets are 1.8, 9, 10, ... 21, 22, 23, 24

LTS で到達できる上限として 21 を採用した。実測は #14(25、失敗)/ #15(21、instrumented-test まで成功)で確認済み。


このPRが通れば #11 / #12 はクローズできる。

🤖 Generated with Claude Code

android-actions/setup-android の既定パッケージに含まれる旧 `tools` が
SDK リポジトリから削除されており、sdkmanager が exit 1 で落ちるため
`packages: platform-tools` を明示する。

あわせて CI の JDK を最新 LTS の 25 に更新する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown

Claude finished @5ym's task in 2m 11s —— View job


コードレビュー

タスク一覧

  • PR差分の取得と内容確認
  • リポジトリ規約(CLAUDE.md等)の確認(CLAUDE.md は見つからず)
  • 変更ファイルのレビュー(.github/workflows/release.yml, test.yml)
  • レビュー結果のまとめ投稿

概要

setup-android@v4 の既定パッケージから削除済みの tools を明示的に除外する対応(packages: platform-tools)は、PR本文にある通り妥当な修正です。Gradle起動前に落ちる根本原因に対する的確な対処になっています。また app/build.gradlecompileOptionsVERSION_17 のままで、CIのビルドJDKのみを25に上げるという説明とも整合しています。

指摘事項

  1. 要確認: java-version の値の形式 (test.yml L22, L45 / release.yml L23)
    '25.0.4+101.0.LTS' という記法が actions/setup-java@v6 (Temurin) で正しく解決されるか確認をお願いします。Temurinのバージョン表記は通常 <feature>.<interim>.<update>+<build> (ビルド番号は整数、例 25.0.1+9) で、この値のようにビルド番号部分が 101.0 と小数になっていたり LTS という文字列サフィックスが付く形式は一般的ではなく、Adoptiumのリリース一覧と一致せず解決に失敗する可能性があります。
    本PR作成時点でTestワークフローはまだ実行中(in_progress)のため、マージ前に実際にCIが成功しているか確認してください。もし失敗するようであれば、以前の慣習(メジャーバージョンのみ指定していた '17')に合わせて単に '25' とする方がシンプルで安全です。
    インラインコメントも同箇所に付けています。

その他

  • テスト: CI設定のみの変更であり、新規のテストコード追加は不要と判断しました。
  • セキュリティ: シークレットの混入や新たな入力値の扱いはなく、問題ありません。
  • 設計: 3箇所で同じ packages 設定とコメントが重複していますが、既存のワークフロー構成(ジョブごとにステップを重複記述するスタイル)を踏襲したものであり、本PRの範囲を超えるため指摘としては挙げません。

Comment thread .github/workflows/test.yml Outdated
with:
distribution: temurin
java-version: '17'
java-version: '25.0.4+101.0.LTS'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

【要確認】java-version: '25.0.4+101.0.LTS' という形式が actions/setup-java@v6 (Temurin) で正しく解決されるか確認をお願いします。

Eclipse Temurin のバージョン表記は通常 <feature>.<interim>.<update>+<build> (例: 25.0.1+9) で、ビルド番号は整数1つです。この行の +101.0.LTS のように小数やサフィックス LTS が含まれる形式は見慣れない書き方で、Adoptium のリリース一覧に一致するバージョンが見つからず解決に失敗する可能性があります。

現時点でこのPRのTest CIはまだ実行中(in_progress)のため、setup-java ステップが成功しているか併せて確認してください。もし失敗する場合は、既存の慣習(以前は '17' のようにメジャーバージョンのみ指定)に合わせて '25' とするのがシンプルで安全です。

同様の記述が本ファイル45行目と release.yml 23行目にもあります。

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

バージョン表記は実測で解決できることを確認済みです。

actions/setup-java は Adoptium API の semver 表記を受け付けるため、25.0.4+101.0.LTS は正しく解決されます。#12 の Test ジョブのログで、同じ値からの取得が成功しています。

Downloading Java 25.0.4+101.0.LTS (Temurin-Hotspot) from https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz ...
Verifying Java package signature...
Extracting Java archive...
Java 25.0.4+101.0.LTS was downloaded
Setting Java 25.0.4+101.0.LTS as the default
  Path: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/25.0.4-101.0.LTS/x64

+101.0.LTS は Adoptium の semver 表記で、リリースタグ jdk-25.0.4.1+1 に対応します(25.0.4.1+1 → semver 25.0.4+101.0.LTS)。Temurin のタグ表記とは別系統のため見慣れない形ですが、誤りではありません。

本PRの Test ジョブも成功しており、setup-java / ビルドともに通っています。

なお値を '25' にしない理由は、このリポジトリの Renovate 設定が java-jdk を exact version で追跡しているためです(#111717.0.20+101 を提案していたのがその挙動)。メジャーのみの指定に戻すと同じ pin PR が再度立つので、Renovate が出す表記に合わせています。

3 ジョブで JDK・Android SDK・Gradle の設定が丸ごと重複していたため、
`.github/actions/setup-build-env` に切り出す。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown

Claude finished @5ym's task in 41s —— View job


コードレビュー

タスク一覧

  • PR差分の取得と内容確認
  • リポジトリ規約(CLAUDE.md等)の確認(CLAUDE.md は見つからず)
  • 変更ファイル(新規 composite action 含む)のレビュー
  • レビュー結果のまとめ投稿

概要

最新のコミット(50b6e54)で、3ワークフローに重複していた JDK/Android SDK/Gradle のセットアップ手順が .github/actions/setup-build-env の composite action に集約されました。以前のレビューで「設計」観点として挙げていた packages: platform-tools 設定とコメントの重複が、この変更で解消されています。各ワークフローも uses: ./.github/actions/setup-build-env に置き換わっており、参照方法・構成ともに問題ありません。

観点別チェック

  1. 不具合: ロジックの変更はなく、既存の3ステップ(setup-java / setup-android / setup-gradle)をそのまま composite action に移しただけなので問題は見当たりません。
  2. セキュリティ: 新規の入力値・シークレットの取り扱いはなく、問題ありません。
  3. 設計: composite action への集約は妥当で、以前指摘していた重複が解消されました。ローカルパス参照 (./.github/actions/setup-build-env) も GitHub Actions の標準的な使い方です。
  4. テスト: CI設定のみの変更であり、新規テストコードの追加は不要と判断しました。

前回指摘(java-version: '25.0.4+101.0.LTS')について

これは前回のレビューで要確認とした点ですが、PR作者から Adoptium API の semver 表記であり実測(#12 のログ)で解決に成功している旨の説明があり、解決済みと判断します。今回のコミットでも値は変更されていません。

現時点で本PRの Test ワークフローは実行中のため、最終的にはCIが成功していることを確認した上でマージしてください。

結論

指摘事項なし。良い改善だと思います。

AGP 9.4.0 内蔵の Kotlin コンパイラがサポートする jvmTarget は 24 までで、
25 は `Unknown Kotlin JVM target: 25` で失敗する。LTS で到達できる上限として 21 を採用する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown

Claude finished @5ym's task in 1m 34s —— View job


コードレビュー

タスク一覧

  • PR差分の取得と内容確認 (git diff origin/master...HEAD)
  • リポジトリ規約の確認 (CLAUDE.md は見つからず)
  • 変更ファイル4件のレビュー
  • レビュー結果のまとめ投稿

概要

setup-android@v4 の既定パッケージから削除済みの tools を除外する対応 (packages: platform-tools) は妥当で、Gradle起動前に失敗していた根本原因への的確な修正です。3ワークフローに重複していたセットアップ手順を .github/actions/setup-build-env の composite action に集約した点も良い改善で、以前の重複指摘が解消されています。

最新コミット (16016ef) で app/build.gradlecompileOptionsVERSION_17VERSION_21 に変更していますが、これは「AGP 9.4.0 内蔵の Kotlinコンパイラが対応する jvmTarget の上限は24で、JDK 25 を直接指定すると Unknown Kotlin JVM target: 25 で失敗するため、LTSで到達できる21を採用する」という理由が明記されており、筋が通っています。本リポジトリはソースが全てKotlinのため、この変更はKotlinのjvmTargetをAGPが compileOptions から同期する挙動と整合しており、問題ありません。

観点別チェック

  1. 不具合: 上記の通り、CI失敗の根本原因(削除済みtoolsパッケージ、JDK25とKotlinコンパイラのjvmTarget不整合)に対する的確な対処です。ロジック上の問題は見当たりません。
  2. セキュリティ: 新規の入力値・シークレットの取り扱いはなく、問題ありません。
  3. 設計: composite actionへの集約は妥当で、3ワークフロー間の重複が解消されています。
  4. テスト: CI設定のみの変更であり、新規テストコードの追加は不要と判断しました。

軽微な確認事項(要確認)

  • PR本文には「app/build.gradlecompileOptionsVERSION_17 のままで、変更はビルドを回すJDKのみ」と記載されていますが、最新コミットで実際には VERSION_21 に変更されています。本文の説明が最新の変更を反映していない可能性があるため、必要であれば更新をご検討ください(コード自体に問題はありません)。
  • 本コメント作成時点でこのPRの Test ワークフロー (実行中) はまだ完了していません。マージ前にCIが成功していることを確認してください。

結論

大きな問題は見当たりません。上記は軽微な確認事項です。

@5ym 5ym changed the title ci: setup-android の失敗を修正し JDK を 25 LTS へ更新 ci: setup-android の失敗を修正し JDK 25 LTS / Java 21 へ更新 Sep 16, 2026
@5ym

5ym commented Sep 16, 2026

Copy link
Copy Markdown
Owner Author

軽微な確認事項の 2 点、どちらも対応済みです。

1. PR 本文と差分の不整合

指摘のとおりでしたが、レビュー実行中に本文を更新していたため、bot が読んだのは更新前の版です。現在の本文では「4. Java 言語レベルを 21 へ」として VERSION_17VERSION_21 の変更と、25 を採用しなかった理由(Kotlin の jvmTarget 上限が 24)を明記しています。

2. CI の成功確認

最新コミット 16016ef で全チェックが成功しました。

チェック 結果
test pass (2m2s)
instrumented-test pass (2m44s)
claude-review pass (2m2s)

compileOptions の 21 への変更については、切り分けのため #15 で単独に実測し、API 34 エミュレータでの instrumented-test まで通ることを確認済みです。25 が失敗することも #14 で確認しています。

なお前回指摘いただいたセットアップ手順の重複は、コメントだけでなくステップごと .github/actions/setup-build-env に集約しました。Renovate の java-jdk 追跡は、github-actions manager の対象パターンに /(^|/)action\.ya?ml$/ が含まれるため維持されます。

@5ym
5ym merged commit 0a5dc57 into master Sep 16, 2026
3 checks passed
@5ym
5ym deleted the ci/jdk25 branch September 16, 2026 03:31
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.

1 participant