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

Provide source archives as part of the releases #2728

Closed
jerboaa opened this issue Sep 28, 2021 · 11 comments
Closed

Provide source archives as part of the releases #2728

jerboaa opened this issue Sep 28, 2021 · 11 comments
Labels
enhancement Issues that enhance the code or documentation of the repo in any way Epic Issues that are large and likely multi-layered features or refactors jenkins Issues that enhance or fix our jenkins server

Comments

@jerboaa
Copy link
Contributor

jerboaa commented Sep 28, 2021

It would be great to have a "source" link on the releases page. This helps users figure out what changed and get access to sources of a particular release right away.

Related issues:
Build support: #2698
API: adoptium/api.adoptium.net#176

TODO:

@jerboaa jerboaa added enhancement Issues that enhance the code or documentation of the repo in any way Epic Issues that are large and likely multi-layered features or refactors labels Sep 28, 2021
@github-actions github-actions bot added the jenkins Issues that enhance or fix our jenkins server label Sep 28, 2021
@sxa
Copy link
Member

sxa commented Sep 29, 2021

NOTE: As per discussion earlier we should consider the impact of enabling this option on the space required on the jenkins server. I would suggest that we only produce the source archive on one platform (e.g. Linux/x64) and ship from that build only. Another option would be to have a separate "Create source bundle" job to pull from. The former seems a bit easier to me and utilises the existing options, albeit slightly less "clean" by having to do it on a particular source archive.

Given the above, we should also consider when / whether to include it when doing point releases (many of which are repackaging on a subset of platforms)

jerboaa added a commit to jerboaa/ci-jenkins-pipelines that referenced this issue Oct 4, 2021
This will enable source tarball creation on Linux x86_64. It's
on that platform only since sources are the same on all arches
and it would overwhelm the CI server's disk space otherwise.

Related epic: adoptium/temurin-build#2728
jerboaa added a commit to jerboaa/ci-jenkins-pipelines that referenced this issue Oct 4, 2021
This should also avoid the issue of duplicate tarballs matching
"jdk" image type requests via the API.

Related epic: adoptium/temurin-build#2728
@jerboaa
Copy link
Contributor Author

jerboaa commented Oct 4, 2021

Enable --create-source-archive on Linux x64: adoptium/ci-jenkins-pipelines#198
Tag sources tarball as such in metadata: adoptium/ci-jenkins-pipelines#199

jerboaa added a commit to adoptium/ci-jenkins-pipelines that referenced this issue Oct 8, 2021
This should also avoid the issue of duplicate tarballs matching
"jdk" image type requests via the API.

Related epic: adoptium/temurin-build#2728
jerboaa added a commit to adoptium/ci-jenkins-pipelines that referenced this issue Oct 8, 2021
This will enable source tarball creation on Linux x86_64. It's
on that platform only since sources are the same on all arches
and it would overwhelm the CI server's disk space otherwise.

Related epic: adoptium/temurin-build#2728
@jerboaa
Copy link
Contributor Author

jerboaa commented Oct 11, 2021

OK, both pipeline script updates have been shipped. Sources artefacts are being produced. But for some reason the publishing to Github step seems to miss uploading *sources-*.tar.gz files. Not sure why that is.

@sxa
Copy link
Member

sxa commented Oct 12, 2021

Looks like it's some issue in the release job. From looking at last nights JDK8 builds the source artefacts are being correcly copied back to the top level openjdk8-pipeline job but the release job hasn't published it to the expected location.

The log for the release job has lines that are "processing" the files, so it knows about them, they just aren't included in the "Uploading" phase

Processing OpenJDK8U-sources_2021-10-11-18-05.tar.gz
Processing OpenJDK8U-sources_2021-10-11-18-05.tar.gz.json
Processing OpenJDK8U-sources_2021-10-11-18-05.tar.gz.sha256.txt

There was nothing set as ARTEFACTS_TO_SKIP in that release job, so the failure to publish is presumably somewhere in https://github.com/adoptium/github-release-scripts/blob/master/sbin/Release.sh although at a quick glance the initial regex in there doesn't seem to include a match for the debugimage files which do get shipped.

At the end of this we'll need to add a pipelines FAQ item for "How to add a new artefact to the releases".

@jerboaa
Copy link
Contributor Author

jerboaa commented Oct 12, 2021

@sxa Thanks for the info. I don't have access to see any of those jobs so I'm somewhat flying blind.

My testing of Release.sh does include *-sources* artefacts in the $files. So the issue seems to be in the groovy code. And it indeed seems to be the case. This line seems to put files containing hotspot in the file name into the adopt group. For a sources artefact this doesn't match. Then this upload looking for the adopt group won't include the sources artefact.

jerboaa added a commit to jerboaa/github-release-scripts that referenced this issue Oct 12, 2021
Currently the file name matcher handles files containing
'hotspot'. This won't work for a sources artefact like:

OpenJDK8U-sources_2021-10-11-18-05.tar.gz

Also match 'sources'-containing files for the upload.

Related: adoptium/temurin-build#2728
@jerboaa
Copy link
Contributor Author

jerboaa commented Oct 12, 2021

Proposed PR for a fix of #2728 (comment):
adoptium/github-release-scripts#83

gdams pushed a commit to adoptium/github-release-scripts that referenced this issue Oct 12, 2021
Currently the file name matcher handles files containing
'hotspot'. This won't work for a sources artefact like:

OpenJDK8U-sources_2021-10-11-18-05.tar.gz

Also match 'sources'-containing files for the upload.

Related: adoptium/temurin-build#2728
@sxa
Copy link
Member

sxa commented Oct 12, 2021

@sxa Thanks for the info. I don't have access to see any of those jobs so I'm somewhat flying blind.

Yep figured that might be the case so I tried to eliminate any issues in the bits that weren't publicly visible 👍
That fix looks like it makes sense, and backs up the need to have the "end to end" process for adding new artefacts documented somewhere!

I've re-run last nights JDK8 publish job (restricted) and it seems to have added the source artefact the the release at https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u-2021-10-12-04-24-beta

@jerboaa
Copy link
Contributor Author

jerboaa commented Oct 12, 2021

[... ] and backs up the need to have the "end to end" process for adding new artefacts documented somewhere!

Agreed.

I've re-run last nights JDK8 publish job (restricted) and it seems to have added the source artefact the the release at https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u-2021-10-12-04-24-beta

Great, thanks! Could you do the same for JDK 11/17 pipelines, please?

@jerboaa
Copy link
Contributor Author

jerboaa commented Oct 14, 2021

Final piece of this is getting a link added on the main page. Tracked with: adoptium/adoptium.net#213

@sxa
Copy link
Member

sxa commented Oct 15, 2021

Great, thanks! Could you do the same for JDK 11/17 pipelines, please?

Sorry, missed this first time round, but it seems to be there in openjdk11-pipeline (visible in the release) and it looks like the openjdk17-pipeline that's running at the moment has picked it up too. (That one's running slow due to AIX).

@jerboaa
Copy link
Contributor Author

jerboaa commented Nov 8, 2021

Final piece of this is getting a link added on the main page. Tracked with: adoptium/adoptium.net#213

This is now done. Closing this epic.

@jerboaa jerboaa closed this as completed Nov 8, 2021
vsebe pushed a commit to vsebe/ci-jenkins-pipelines that referenced this issue Nov 23, 2021
This will enable source tarball creation on Linux x86_64. It's
on that platform only since sources are the same on all arches
and it would overwhelm the CI server's disk space otherwise.

Related epic: adoptium/temurin-build#2728
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issues that enhance the code or documentation of the repo in any way Epic Issues that are large and likely multi-layered features or refactors jenkins Issues that enhance or fix our jenkins server
Projects
None yet
Development

No branches or pull requests

2 participants