-
Notifications
You must be signed in to change notification settings - Fork 92
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
DNM: Combine ceph-pull-requests and API jobs #1657
base: main
Are you sure you want to change the base?
Conversation
6c2e24e
to
064559a
Compare
56756b3
to
c5a5dea
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this quick PR, @djgalloway ! Looks perfect to me. Just added a few observations, but nothing blocking.
shallow-clone: true | ||
wipe-workspace: true | ||
|
||
## TODO: (maybe) I'm sure there's a cleaner/prettier way to do this. Maybe doing an actual Jenkins pipeline. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a great improvement in terms of resource usage, and Jenkins pipelines will definitely improve also the reporting of the different stages. If you need any help for a next PR, I'll gladly volunteer for helping bring pipelines into Ceph.
- job: | ||
name: ceph-pr-combined | ||
description: 'make check and ceph API tests combined' | ||
project-type: freestyle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if this would imply much change to everything else, but we might keep the Jenkins Job Builder YAML syntax while introducing project-type: pipeline
...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I'm sure in the future we can streamline this job by making pipeline. The two troubles I had with that were
- Ensuring all steps run on the same machine
- Having two separate "checks" in GitHub and having them get updated accordingly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
This will run `make check` and then the Ceph API tests against the built binaries instead of us running `make` twice per PR then running API tests against one of those runs. Signed-off-by: David Galloway <[email protected]>
Replaced by ceph-pr-combined Signed-off-by: David Galloway <[email protected]>
c5a5dea
to
fc4121a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm, thanks a lot, @djgalloway!
@djgalloway as this is causing some fuss in other teams, for the soak testing period, can we just make it run for dashboard-labeled PRs? Thanks! |
Or why don't we just merge as-is and tweak it after the fact? |
@jdurgin @neha-ojha are y'all okay with merging this PR? This will disable the The API tests require running |
@djgalloway something I just realized: and I don't wanna sound like a killjoy, but it'll 'slightly' increment the time taken to finish (10-15 min), as here |
I'm sure there probably is. I'm guessing that's where the Pipeline would come in handy. So it'd be: Phase 1: make |
Sounds good to go to me. We can further improve in future PRs. Reducing the resources by nearly half seems worth merging sooner than later to me. |
I have no objections.
|
Alright, well, I'm on PTO tomorrow so Monday I guess. |
@djgalloway just started to experiment with pipelines (ceph/ceph#37265) and it seems it might not require too much rework... |
Okay. Are we going that route instead, then? |
I guess the multibranch pipeline should be enable on ceph/ceph, and that configuration could still be a jenkins-job-builder YAML file, right? I personally hate the groovy-based syntax of the What do you think? BTW, I created a pipeline job (epuertat-test-ceph-pipeline), but was... somehow deleted... |
My understanding is we'll need a small yaml file defining a pipeline job but that will pull in a groovy Jenkinsfile from ceph.git and ceph-ci.git. I'm fine with that if we can get it working. I didn't feel confident enough in my coding abilities to convert the
Anytime something gets merged into https://github.com/ceph/ceph-build, a Jenkins job runs to update itself and deleted any jobs that aren't defined in this repo. I would suggest logging in to Jenkins, getting an API key, and using
Here's the command I used to create/update/test/etc. the |
Thanks a lot @djgalloway ! Will try it and let you know. |
This can't be merged as-is anymore. Needs a rebase. |
@epuertat it pains me to still see us building Ceph binaries twice for every PR. What do you think about merging this next week? |
@djgalloway omd, completely forgot about this one! I'm totally supportive of this (as a later improvement, we should conditionally include the 'dashboard e2e' tests too). Do you have any recent run of this, to verify it works ok? |
Good call. Will test today. |
A couple notes: