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

Update builds: Refactoring, Parallel test support, Coverages, etc. #21

Closed

Conversation

oleg-nenashev
Copy link
Contributor

This is a WiP pull request, which updates the Pipeline library a bit. My main idea is to have a more comprehensive Pipeline library demo, which also offers more features on jenkins.io.

  • - Refactor buildPlugin and introduce buildMavenPluginPom and buildGradleComponent methods
  • - Introduce the repoType parameter, which enforces Maven or Gradle without doing the repo checkout. Ideally buildMavenPluginPom() should fallback to radle so there will be no extra node() block in the default logic
  • - Add support of parallel testing in Maven projects.
  • - Add stages
  • - Add Cobertura sample for coverage publishing
  • - Add jacoco support forCoverage publishing, which is supported OOTB in Plugin POMs
  • - Add tests using Pipeline Unit

Pipeline for a single platform:

screen shot 2017-12-03 at 19 05 54

Multi-platform Pipeline:

screen shot 2017-12-03 at 19 09 35

Multi-platform Pipeline with parallel tests:

screen shot 2017-12-03 at 19 19 47

The latter graph looks strange, CC @abayer @svanoort. I'd guess BlueOcean does not support parallel-in-parallel.

@oleg-nenashev oleg-nenashev changed the title Update builds: Refactoring, Parallel test support [WiP] - Update builds: Refactoring, Parallel test support Dec 3, 2017
@oleg-nenashev oleg-nenashev changed the title [WiP] - Update builds: Refactoring, Parallel test support [WiP] - Update builds: Refactoring, Parallel test support, Coverages, etc. Dec 3, 2017
@rtyler
Copy link
Member

rtyler commented Dec 3, 2017

@oleg-nenashev This work looks really interesting, assuming it's working, are there any reasons not to merge this before you check off those other two checkboxes?

@oleg-nenashev
Copy link
Contributor Author

@rtyler It works even now (on https://github.com/oleg-nenashev/demo-jenkins-config-as-code). The main problem in the current implementation is that the Maven plugin build will require an extra node() block (and hence Docker provisioning) checkout to determine the project type before invoking the command.

It is not very efficient, but I want to keep Gradle projects running without breakages. So I consider adding a hack, which would fallback to Gradle from a Maven project if there is no pom.xml. In such case we would be able to keep buildPlugin() compatibility without extra node() clause.

Generally I had a plan to get CI for pipeline-library running before requesting the review. But we can make it iterative, of course

//TODO: probably it makes sense to default to Maven instead
if (projectType == null) {
stage("Determine the project type") {
timeout(10) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@rtyler The code below is my main concern about the current impl

@oleg-nenashev
Copy link
Contributor Author

CC @reviewbybees

@svanoort
Copy link
Contributor

@oleg-nenashev Very belated reply: Blue Ocean don't and apparently will not support nested parallels. Bismuth does, explicitly, because I'd anticipated it -- but AFAICT nobody has offered visualization of such structures.

Wacky things may happen with nesting of parallels :-/

@chriskilding
Copy link

I’m interested in progress on the code coverage front - I’ve thought for some time that plugins in the Jenkins project should have access to a standardised coverage reporter out of the box (if they want it), rather than individual plugin authors having to set up their own SaaS coverage reporter every time.

How close are you to enabling support for Jacoco / Cobertura reports?

@oleg-nenashev
Copy link
Contributor Author

oleg-nenashev commented Jun 3, 2019 via email

@jglick jglick marked this pull request as draft April 29, 2021 20:00
@jglick jglick changed the title [WiP] - Update builds: Refactoring, Parallel test support, Coverages, etc. Update builds: Refactoring, Parallel test support, Coverages, etc. Apr 29, 2021
@dduportal
Copy link
Contributor

Hello 👋
This pull request is dangling since 3 years, has the "draft" status since 11 month and has conflicting file.
That's why we are closing it.

Of course, feel free to reopen if you are still working on it. Many thanks for the contribution proposal!

@dduportal dduportal closed this Mar 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants