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

Allow developer control of parallel testing #271

Merged
merged 1 commit into from
Sep 13, 2023

Conversation

MarkEWaite
Copy link
Contributor

Allow developer control of parallel testing

Move the definition of parallel testing from the Maven pom file into the Jenkinsfile so that ci.jenkins.io continues to run the tests with one process per available core, while developers are allowed to configure the amount of parallel testing based on the configuration and use of their computer.

Developers can adjust parallel execution by passing a command line argument to Maven like this:

  mvn clean -DforkCount=1C verify

Developers can define a Maven profile that sets the forkCount in their
~/.m2/settings.xml like this:

  <profile>
    <id>faster</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <forkCount>.45C</forkCount>
    </properties>
  </profile>

With that entry in the settings.xml file, then 0.45C will be used for:

  mvn clean verify

Testing done

Tests pass with -DforkCount=1C on my Linux computer with Java 11.

Submitter checklist

  • Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
  • Ensure that the pull request title represents the desired changelog entry
  • Please describe what you did
  • Link to relevant issues in GitHub or Jira
  • Link to relevant pull requests, esp. upstream and downstream changes
  • Ensure you have provided tests - that demonstrates feature works or fixes the issue

Move the definition of parallel testing from the Maven pom file into the
Jenkinsfile so that ci.jenkins.io continues to run the tests with one
process per available core, while developers are allowed to configure
the amount of parallel testing based on the configuration and use of
their computer.

Developers can adjust parallel execution by passing a command line
argument to Maven like this:

  mvn clean -DforkCount=1C verify

Developers can define a Maven profile that sets the forkCount in their
~/.m2/settings.xml like this:

  <profile>
    <id>faster</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <forkCount>.45C</forkCount>
    </properties>
  </profile>

With that entry in the settings.xml file, then 0.45C will be used for:

  mvn clean verify
Copy link
Member

@timja timja left a comment

Choose a reason for hiding this comment

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

why not just move it to a property in the pom so it's there by default for the project?

i would rather the project worked out of the box with good performance for me without having to set it up on every device

@MarkEWaite
Copy link
Contributor Author

why not just move it to a property in the pom so it's there by default for the project?

The developer perception of good behavior is different depending on the environment where it is being run. I've not been able to find a configuration (other than the system specific configuration described in this pull request) that will satisfy most developers.

I run most of my tests on separate computers where 1C has been the best for me. @jglick runs on his Linux desktop and has found that using 1C makes his desktop machine less predictable in the user interface. He uses .45C. @jtnord runs on his Windows desktop and has found that different values for forkCount are better for him.

@timja timja added the chore a PR that adds to maintenance - used by Release Drafter label Sep 13, 2023
@timja timja merged commit 0d376e9 into jenkinsci:master Sep 13, 2023
14 checks passed
@MarkEWaite MarkEWaite deleted the move-forkCount-to-Jenkinsfile branch September 13, 2023 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore a PR that adds to maintenance - used by Release Drafter
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants