Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use generally available JDK21 images #347

Merged
merged 4 commits into from Nov 17, 2023
Merged

Use generally available JDK21 images #347

merged 4 commits into from Nov 17, 2023

Conversation

marvinruder
Copy link
Contributor

  • Create separate -preview configurations for architectures in early access
  • Fix early access URLs
  • Switch to Ubuntu 22.04 LTS build images
  • Fix make command in README.md

Resolves #346

Testing done

Submitter checklist

Edit tasklist title
Beta Give feedback Tasklist Submitter checklist, more options

Delete tasklist

Delete tasklist block?
Are you sure? All relationships in this tasklist will be removed.
  1. Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
    Options
  2. Ensure that the pull request title represents the desired changelog entry
    Options
  3. Please describe what you did
    Options
  4. Link to relevant issues in GitHub or Jira
    Options
  5. Link to relevant pull requests, esp. upstream and downstream changes
    Options
  6. Ensure you have provided tests - that demonstrates feature works or fixes the issue
    Options

* Create separate `-preview` configurations for architectures in early access
* Fix early access URLs
* Switch to Ubuntu 22.04 LTS build images
* Fix `make` command in README.md

Signed-off-by: Marvin A. Ruder <signed@mruder.dev>
@marvinruder marvinruder requested a review from a team as a code owner November 16, 2023 20:28
@marvinruder
Copy link
Contributor Author

Not sure if all my changes in the updatecli directory are as they should be, so please double-check there.

I was able to build and test all images successfully on arm64 architecture (including -preview images temporarily added to the configuration), but do not have access to other hardware, so a pipeline execution on your machines would be much appreciated.

Signed-off-by: Marvin A. Ruder <signed@mruder.dev>
Signed-off-by: Marvin A. Ruder <signed@mruder.dev>
Signed-off-by: Marvin A. Ruder <signed@mruder.dev>
@gounthar
Copy link
Contributor

Thank you so much for your contribution, @marvinruder . 🤗
I'll try a review tomorrow, but I guess others will start before I do. 😊

@@ -5,6 +5,7 @@ group "linux" {
"alpine_jdk21",
"debian_jdk11",
"debian_jdk21",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if debian_jdk17 is missing here?

@marvinruder
Copy link
Contributor Author

I also noticed that there is a debian_jdk11 base image available for linux/arm/v7, and debian_jdk17 base images available for linux/s390x and linux/arm/v7, but those combinations are not included in the Docker bake file. Is this intentional, are there other incompatibilities I am unaware of?

@dduportal
Copy link
Contributor

Hi @marvinruder ! Thanks for this PR!

Not sure if all my changes in the updatecli directory are as they should be, so please double-check there.

No worries on the updatecli changes: the good practice is to focus on it on a subsequent PR so we'll check once this one is merged. Let's keep the current changes as they ensure we don't forget.

For the record, there are no execution errors in the CI (as per the GitHub Action check) for updatecli, which has 9 "pipelines" run, 5 are "success" (e.g. tracked dependencies are up-to-date) and 4 are "skipped" (new dependency detected but the condition are failing).

I was able to build and test all images successfully on arm64 architecture (including -preview images temporarily added to the configuration), but do not have access to other hardware, so a pipeline execution on your machines would be much appreciated.

Thanks for carefully checking! The pipeline checks are also all green which mean that the (build + test) on amd64 are all good and the "multi-architecture" was also a success.

For the record, we do not use specifi hardware for cross-platform container image build: as per

sh '''
docker buildx create --use
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx bake --file docker-bake.hcl linux
'''
we use qemu inside Docker along with buildx capabilities. it's a 3 line (and portable if you have Docker CE) script. No action expected i'm only adding this here so you know it is possible on your machine :)

I also noticed that there is a debian_jdk11 base image available for linux/arm/v7, and debian_jdk17 base images available for linux/s390x and linux/arm/v7, but those combinations are not included in the Docker bake file. Is this intentional, are there other incompatibilities I am unaware of?

Good catch, but that should be a topic for another PR if you don't mind. Having biug PRs with too much things impairs the ability to review and integrate feature efficiently: Let's start with the JDK21. I propose we or you open an issue to point the debian jdk11 stuff: I believe we should check that the default image switches to JDK17 as default in a subsequent PR (which would be a breaking change to be delivered after the JDK21 GA).

Copy link
Contributor

@dduportal dduportal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, the image changes looks good, let's roll!

(we'll eventually 1 additional PR before triggering a release though)

@dduportal dduportal merged commit 6aeeb51 into jenkinsci:master Nov 17, 2023
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add GA JDK21 Alpine-based arm64 images
3 participants