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

feat: add support for evaluation jobs/pipelines #520

Merged
merged 110 commits into from
Jan 2, 2023
Merged

feat: add support for evaluation jobs/pipelines #520

merged 110 commits into from
Jan 2, 2023

Conversation

zdtsw
Copy link
Contributor

@zdtsw zdtsw commented Nov 29, 2022

Highlight change:

split current jdkX.groovy config into two parts:

  • jdkX.groovy will be used for nightly builds
  • jdkX_evaluation.groovy will also be run as the same time as jdkX.groovy, but only contain unstable/non-temurin variant builds

daily build stats should only count whats in the jdkX.groovy, (can be another type of build stats if required for evaluation, and we already have ones for openj9 etc variants)
weekly archive should only use jdkX.groovy as input and archive results
introduce new weekly-evaluation use jdkX_prototpye.groovy as input for weekly cycle long test.

Detail Config updates
aarch64 windows is added back as part of evaluation
openj9, etc are moved into evaluation
official release of temurin should refer to whats stated in jdkX_release.groovy

in short:

  • jdkX_release.groovy is the one we used to include what we release to customer, it is only used for release time
  • jdkX.groovy included everything from jdkX_release + some others we do not release but should be counted into stats
  • jdkX_evaluation.groovy has config not in either of above two config files: not ready to be included into nightly, not temurin builds, etc

Trigger updates

  • openjdkX-pipeline relesaseType to Nightly use triggerSchedule_nightly

  • weekly-openjdkX-pipeline relesaeType to "Release" triggerSchedule_weekly

  • weekly-prototpye-openjdkX-pipeline releasetype to Nightly Not Publish use triggerSchedule_weekly_evaluation: this will disable the remotetrigger to JCK (isRelease = false)

  • evaluation-openjdkX-pipeline releaseType to Nightly Not Publish use triggerSchedule_evaluation

first two share the same config file and targetConfiguration, later two share the same config file and targetConfiguration

Test results
Test pipeline generator: https://ci.adoptopenjdk.net/view/work-in-progress/job/wen-build-pipeline-generator/

  • generates build-scripts-testing/evaluation-openjdk20-pipeline

Tet job generator: https://ci.adoptopenjdk.net/view/work-in-progress/job/wen-evaluation-pipeline_jobs_generator_jdk/

  • generates build-scripts-testing/evaluation/jobs/jdk20/jdk20-evaluation-linux-aarch64-hotspot etc

result job to create downstream evaluation jobs

pipeline generator relation
build-pipeline-generator https://ci.adoptopenjdk.net/job/build-scripts/job/utils/job/build-pipeline-generator/ will be used to generate all [weekly-]openjdkXX-pipeline => AS-IS no change
new evaluation-pipeline-generator will be used to generate new [weekly-]prototpye-openjdkXX-pipeline

to test it out function, created https://ci.adoptopenjdk.net/view/work-in-progress/job/wen-evaluation-pipeline-generator/

which generates
Screenshot from 2022-12-15 11-10-42

Post Merge Action

Ref: #473

@github-actions
Copy link

Thank you for creating a pull request!

Please check out the information below if you have not made a pull request here before (or if you need a reminder how things work).

Code Quality and Contributing Guidelines

If you have not done so already, please familiarise yourself with our Contributing Guidelines and Code Of Conduct, even if you have contributed before.

Tests

Github actions will run a set of jobs against your PR that will lint and unit test your changes. Keep an eye out for the results from these on the latest commit you submitted. For more information, please see our testing documentation.

In order to run the advanced pipeline tests (executing a set of mock pipelines), it requires an admin to post run tests on this PR.
If you are not an admin, please ask for one's attention in #infrastructure on Slack or ping one here.
To run full set of tests, use "run tests"; a subset of tests on specific jdk version, use "run tests quick 11,19"

@github-actions github-actions bot added generation Issues that provide enhancements or fixes to the job generators jenkins-pipeline testing aarch windows labels Nov 29, 2022
@zdtsw
Copy link
Contributor Author

zdtsw commented Dec 2, 2022

consider : #517 (comment)

@github-actions github-actions bot added the openj9 label Dec 2, 2022
@github-actions github-actions bot added generation Issues that provide enhancements or fixes to the job generators testing and removed generation Issues that provide enhancements or fixes to the job generators testing labels Dec 2, 2022
@github-actions github-actions bot added generation Issues that provide enhancements or fixes to the job generators testing and removed testing generation Issues that provide enhancements or fixes to the job generators labels Dec 8, 2022
@github-actions github-actions bot added testing and removed testing labels Dec 9, 2022
@zdtsw zdtsw changed the title WIP: add support for prototype jobs/pipelines feat: add support for prototype jobs/pipelines Dec 9, 2022
@github-actions github-actions bot added testing and removed testing labels Dec 9, 2022
@zdtsw
Copy link
Contributor Author

zdtsw commented Dec 12, 2022

run tests quick 19

@eclipse-temurin-bot
Copy link
Collaborator

 PR TESTER RESULT 

✅ All pipelines passed! ✅


aarch64Windows: [
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this be added?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

if we do not have it enabled in jdk17u.groovy or jdk17u_prototype.groovy, it wont be used in the build

Copy link
Member

Choose a reason for hiding this comment

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

@andrew-m-leonard if the question is "should Windows aarch64" be in the prototype pipeline then my answer is yes, please. I'm working on adding a second machine to the build farm this week to resolve the redundancy issues we had.


aarch64Windows: [
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure this should be added?


aarch64Windows: [
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure should be added?

Copy link
Contributor

@andrew-m-leonard andrew-m-leonard left a comment

Choose a reason for hiding this comment

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

Just the query on aarch64Windows being added...?

@zdtsw
Copy link
Contributor Author

zdtsw commented Dec 20, 2022

Just the query on aarch64Windows being added...?

yes, think we can have these in the config.groovy and use jdkXu.groovy or jdkX_prototype.groovy as enabler.
actually it does not query API for the downstream jobs, but only the openjdk-pipeline.

@zdtsw zdtsw requested a review from smlambert December 20, 2022 10:52
@gdams
Copy link
Member

gdams commented Dec 20, 2022

This all looks good to me, only suggestion is perhaps prototype isn't the best word. Maybe incubator or something?

@zdtsw
Copy link
Contributor Author

zdtsw commented Dec 20, 2022

This all looks good to me, only suggestion is perhaps prototype isn't the best word. Maybe incubator or something?

I dont mind changing name to incubator, how you think @andrew-m-leonard ?

@smlambert
Copy link
Contributor

Throwing in the suggestion to use the term "evaluation pipeline", instead of prototype or incubator.

Suggested in #543 (comment)

Anything we do not release should go in the prototype incubator nonrelease experimental evaluation pipeline, since we are evaluating them for various reasons (other distros to aid in triage and improve automation / train models) and new platforms for stabilization.

@zdtsw
Copy link
Contributor Author

zdtsw commented Dec 21, 2022

Throwing in the suggestion to use the term "evaluation pipeline", instead of prototype or incubator.

Suggested in #543 (comment)

Anything we do not release should go in the prototype incubator nonrelease experimental evaluation pipeline, since we are evaluating them for various reasons (other distros to aid in triage and improve automation / train models) and new platforms for stabilization.

renamed from prototype to evaluation

@zdtsw zdtsw changed the title feat: add support for prototype jobs/pipelines feat: add support for evaluation jobs/pipelines Dec 21, 2022
@karianna
Copy link
Contributor

@zdtsw Will need a rebase

@zdtsw
Copy link
Contributor Author

zdtsw commented Dec 29, 2022

@zdtsw Will need a rebase

merged master into issue/473, cannot do rebase because this branch issue/473 was created in origin repo, it will mess up anyone forked origin

Copy link
Contributor

@karianna karianna left a comment

Choose a reason for hiding this comment

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

LGTM

@zdtsw zdtsw merged commit 8e3800e into master Jan 2, 2023
luhenry pushed a commit to luhenry/adoptium-ci-jenkins-pipelines that referenced this pull request Feb 3, 2024
* feat: add support for evaluation jobs/pipelines
-   remove isPRBuilder and isReleaseByuilder, replace with new parameter jobType
* update: set releaseType of prototype pipeline to "do not publish"
* update: add creation of weekly-evalucation pipeline
* update: add back win aarch64 to jdk20 prototype
	- move riscv from jdk20 nightly to evalucation
Co-authored-by: Martijn Verburg <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants