[FOLIO-3494] Create new jenkins docker image for Node v16 and Java 17 Created: 09/May/22 Updated: 06/Jun/22 Resolved: 17/May/22 |
|
| Status: | Closed |
| Project: | FOLIO |
| Components: | None |
| Affects versions: | None |
| Fix versions: | None |
| Type: | Story | Priority: | P3 |
| Reporter: | Jakub Skoczen | Assignee: | David Crossley |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original estimate: | Not Specified | ||
| Issue links: |
|
||||||||||||||||||||||||||||
| Sprint: | DevOps Sprint 139 | ||||||||||||||||||||||||||||
| Development Team: | FOLIO DevOps | ||||||||||||||||||||||||||||
| RCA Group: | TBD | ||||||||||||||||||||||||||||
| Description |
|
Create a new build image "folioci/jenkins-slave-all:java-17" that includes Node v16 and JDK17, and updates Ubuntu version to 22.04 Jammy. Configure Jenkins to provide "jenkins-agent-java17" build node type that can be used in the Jenkins Java pipeline via buildNode option in a module's Jenkinsfile. Update jenkins-pipeline-libs/vars/setEnvMvn.groovy to detect Java 17 in the build image, otherwise Java 11, and drop support for Java 1.8 version. Update jenkins-pipeline-libs/vars/buildMvn.groovy to utilise the buildNode option in a module's Jenkinsfile. Otherwise default to "jenkins-agent-java11" and drop support for the old default "jenkins-slave-all" (i.e. Java 1.8). Update the build pipeline for NPM to allow specifying buildNode similarly to Java modules. |
| Comments |
| Comment by David Crossley [ 13/May/22 ] |
|
The new image is built and pushed as "folioci/jenkins-slave-all:java-17" and "3.0.0". See folio-tools/pull/225. The configuration for back-end modules is done. See jenkins-pipeline-libs/pull/143. Only one Jenkins cloud is configured to handle the new docker image, so not yet ready for prime time. |
| Comment by David Crossley [ 17/May/22 ] |
|
The other Jenkins clouds are now configured to also handle this "java-17" image.
|
| Comment by David Crossley [ 17/May/22 ] |
|
The back-end modules, and the remaining front-end Jenkins-based modules, can now utilise either buildNode 'jenkins-agent-java17' (which has Java 17 and Node.js 16) or the default 'jenkins-agent-java11' (which has Java 11 and Node.js 14). Refer to documentation at: |
| Comment by Marc Johnson [ 02/Jun/22 ] |
|
I had no idea that Java 17 was now officially supported by FOLIO. How / when was this decision made? |
| Comment by Jakub Skoczen [ 02/Jun/22 ] |
|
Marc Johnson Support for node v16 and JDK 17 was added per request from development teams. AFAIK, there is no decision making process adding support for latest LTS version of these components, but maybe you know something that I don't. |
| Comment by Marc Johnson [ 02/Jun/22 ] |
Ok.
I am not aware of any such process. That was why I asked the question of how this platform wide decision had been made. |
| Comment by Jakub Skoczen [ 02/Jun/22 ] |
|
Marc Johnson I am sure you know this, but to be clear: this adds support for building JDK 17 based containers. It doesn't change what modules actually use during builds. This would be a sweeping change and would likely require a "decision" to invest human-resources into it. Beats me how should we tackle decision like this. |
| Comment by Marc Johnson [ 03/Jun/22 ] |
Oh, so JRE 17 can be used to run a module, however Java 17 features cannot be used in the module because the build jobs don't use it? Or are you saying it is a per-module activity for folks to move the code to Java 17? |
| Comment by David Crossley [ 03/Jun/22 ] |
|
Marc Johnson The CI is ready. Please see the comment earlier in this ticket. |
| Comment by Marc Johnson [ 06/Jun/22 ] |
|
David Crossley Thanks. My interpretation Jakub Skoczen comment left me unsure. |
| Comment by Jakub Skoczen [ 06/Jun/22 ] |
|
Marc Johnson I was referring to the fact that this is a per-module activity. |
| Comment by Marc Johnson [ 06/Jun/22 ] |
Cool, thanks for clarifying. I concur that I don't know how the community makes those kinds of investment decisions. |