Hi all,
As you may have noticed, last weekend many CI jobs in the core and plugins were failing due to the unavailability of OpenJDK downloads from
https://download.java.net (see
INFRA-2086). After the discussion with the Jenkins INFRA team, we have a proposal to switch
ci.jenkins.io to
AdoptOpenJDK by default.
Background: The issue happened due to the misconfigured certificate on the instance. Windows agents on
ci.jenkins.io download JDK11 on-demand by accessing the external website (not the best practice for sure). The OpenJDK download site was down for almost 4 days. Although the service is recovered now, this is a concern for the future. It is not a first time when the Oracle's infrastructure impacts Jenkins developers and users (e.g. JDK tool Installers last year). JDK downloads by URL may also break at any moment. Also, there is a constant concern about Oracle changing usage policies (e.g. restricted access to new OpenJDK 8 builds and so on). You can find more context in the
INFRA team meeting notes from April 30 .
Why AdoptOpenJDK?
- The releases are distributed from GitHub, so they are more stable even if we continue downloading JDKs by URL. We also already have a lot of dependencies on GitHub services in our infrastructure
- AdoptOpenJDK ships all Java configurations (Linux/Windows, Java 8/11) and the required Docker images
- AdoptOpenJDK passes all standard JVM/JDK certification suites (powered by Jenkins, of course: https://ci.adoptopenjdk.net/ )
So the proposal on the table is to start using AdoptOpenJDK in our build flows, at least for builds outside Docker. Development Docker images and Dockerized Linux agents are also under consideration. Official Jenkins Docker images will stay intact, a separate discovery and JEP would be needed for it.
Before we move forward, it would be great to get feedback from plugin maintainers and other contributors. Any comments and proposals will be much appreciated.
Best regards,
Oleg Nenashev