-
-
Notifications
You must be signed in to change notification settings - Fork 78
Closed
Description
There are currently a number of issues when producing the Linux APKs, Debs & RPMs for the JDKs / JREs at the end of a release cycle:
Notably:
- Currently take ~1 week at the end of a release
- Quite painful for CPU when doing 5 major version releases
- Lots of manual updates required to numerous files, which can be prone to error.
- Lots of work to add new versions and O/S distributions
- All architectures for a version have to be completed, before installer packages can be produced
- Removing a single architecture (when required) is even more time consuming and error prone.
- Currently doing platform specific installers is quite complicated
Proposal:
Ideally, the linux packages should be produced on a per version/architecture basis, and this should be done at the same time that the linux distribution tar balls are published to Github.
The new process, might be as follows:
When the release binaries are published to github via the jenkins refactor release tool :
- Run a subsequent process to create the package installers, for each dist/version/architecture combination.
- Once the linux installer packages are produced, push them to artifactory
This will require the following tasks:
- Create a generic script that can build an individual arch, version, distro combination
- Dynamically generate the APK build, debian control and RPM spec files.
- For the job that generates files, how do we keep track of those files (e.g. pushed into a repo?)
- Ideally tracked in a GitHub repository
Advantages of this approach :
- The process doesn’t disrupt the existing steps to test the installers
Improvement Items That Can Be Added:
- Improve handling of src rpms to be architecture specific, rather than a single huge file, with EVERY architecture contained.
- For the past issue where pushing to JFrog has failed
- Need a follow-on verification test for whether an artifact was pushed successfully on JFrog
- Download the artifact from jfrog and perform a simple test.
- Also looking at using symlinks to reduce the number of uploads to JFrog, though the technical work is ongoing
- Add metrics for how long it takes artifacts to be pushed to JFrog, but when we do improve this, we will also look back at previous releases to see how big the improvement is
- Would also be nice to get metrics for the container images
- AIX installers don’t exist at this time
List Of Tasks:
- Linux Packages : Produce Outline Jenkins Pipeline POC process #1019
- Linux Package Rework - Write Process To Validate Parameters From Triggering Job & Validate Artifacts #1037
- Add JDK8 version handling support ( Part of 1037 )
- Add JDK8 ARM32 version handling support ( Part of 1037 )
- Amend jenkinsfile to have stage specific nodes.
- Investigate refactoring of Linux installer gradle build process to aid automation #1049
- Create all distribution templates for installer automation process #1069
- Create Python Script To Create Package Build Files From APKBuild / deb / specfile Templates #1045
- Installer Refactor - Initial Test Of Current Platforms/Versions/Architectures #1072
- Installer Refactor : Refactor package uploads for automation #1080
- Installer Refactor: Test New Automated Process #1094
- Debian Packaging Incompatibility with OpenJDK #1077
- Checkin spec, apkbuild and debian build source files created by above process
FUTURE ENHANCEMENTS: Now in #1166
Reactions are currently unavailable
Metadata
Metadata
Assignees
Type
Projects
Status
Done