| # 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](https://goto.google.com/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 https://goto.google.com/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](https://goto.google.com/flutter-luci-playbook#remove-duplicated-cipd-tags). | |
| Then, re-upload the correct Java version package to CIPD. |