Added Docs For Updating to a New Java Version in CI (#166159)

Added docs for updating to a new Java version in CI. Also added
instructions on uploading new Java version pacakges to CIPD.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
This commit is contained in:
jesswrd 2025-04-08 11:28:55 -07:00 committed by GitHub
parent 30e53b0d9c
commit a2cb910f83
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 85 additions and 0 deletions

View File

@ -66,6 +66,19 @@ In the engine, you may follow [Upgrading Engine's Android API version](https://g
- Example Framework PR: <https://github.com/flutter/flutter/pull/152498>.
- Example Engine PR: <https://github.com/flutter/engine/pull/54186>.
##### Update Java Version in CI (Only for Java LTS Release)
Every few years Java releases a new Java LTS (long-term support) version, which typically
becomes the industry standard for a few years. As users adopt the new Java LTS version, either
directly or as part of the latest Android SDK, we want to update our CI to test against the new Java version
to identify and address potential compatibility issues.
Upload the new Java Version package to CIPD following the instructions [here](/docs/platforms/android/Uploading-New-Java-Version-to-CIPD.md).
Update the usages of the current Java version to the new Java version in CI.
- Example PR: <https://github.com/flutter/flutter/pull/165210>.
#### Update documentation
Update documentation page to indicate the new API is tested

View File

@ -0,0 +1,72 @@
# Uploading New Java Version to CIPD
We store the Java Version package on CIPD for use on CI. For more information read the internal
docs [here](http://go/luci-cipd).
Some links in the instructions below are Google-internal.
## Steps
### Request Access to CIPD
1. Request temporary write access to upload packages to CIPD
via http://go/flutter-luci-cipd#requesting-write-read-access-to-cipd-packages.
2. Wait about 5-30 minutes for access rights to sync. To check if your rights have synced, see if
you are a member of this
group [here](https://chrome-infra-auth.appspot.com/auth/groups/google%2Fflutter-cipd-writers@twosync.google.com).
### Download the New Java Version and Set Up for CIPD Upload
3. Download the new Java version via OpenJDK (not Oracle's Java for licensing/legal
reasons) [here](https://openjdk.org/projects/jdk/) for the following platforms:
linux-amd64(aka x64), mac-arm64, mac-amd64, and windows-amd64.
4. Download the latest Java version from
CIPD [here](https://chrome-infra-packages.appspot.com/p/flutter/java/openjdk) for the following
platforms: linux-amd64(aka x64), mac-arm64, mac-amd64, and windows-amd64.
5. Unzip the new Java version and the latest version.
6. Add a file titled `openjdk.cipd.yaml` at the top-level directory. Copy the contents below into
the file and replace contents in <> for your new Java version package:
```sh
package: flutter/java/openjdk/<platform-architecture>
description: OpenJDK <java_version> for <platform>
install_mode: copy
data:
# This directory contains Java <platform-architecture> to be used in automated tests.
- dir: .
```
Note: `linux-amd64` is an example of `<platform-architecture>`
7. Ensure the file/directory structure of the new Java version package to be uploaded is the same as
the structure at the top-level of the latest from CIPD.
This involves potentially deleting contents of the top-level directory.
### Upload to CIPD
8. To run CIPD commands, please run this command:
```sh
cipd auth-login
```
9. To upload the new Java version to CIPD, please run this command:
```sh
cipd create -in <path_to_new_java_version_package> -name flutter/java/openjdk/<platform-architecture> -tag version:<java_version>
```
Note: Please check you have the correct name, tags, package structure before uploading to CIPD
because deleting the package on CIPD is difficult.
10. Check to see if your new Java version has successfully uploaded to CIPD by clicking on the
relevant platform [here](https://chrome-infra-packages.appspot.com/p/flutter/java/openjdk).
### Troubleshooting CIPD (Optional)
If you accidentally uploaded the incorrect package to CIPD, you can delete the tag using these
instructions [here](go/flutter-luci-playbook#remove-duplicated-cipd-tags).
Then, re-upload the correct Java version pacakge to CIPD.