Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-12778

Extend touchstone functionality to allow for multiple touchstones

      Since I have to support a constantly/rapidly changing set of branches, each supporting a couple of platforms, I want to be able to have only one matrix per branch job to do all builds/tests per branch. To achieve this efficiently, I need to be able to configure the matrix job to

      1. build main targets for all supported platforms
      2. If 1 succeeds, run unit test for all supported platforms
      3. If 2 succeeds, build additional test tools for more extensive tests
      4. If 3 succeeds, run tests for all supported platforms

      For this I need to be able to define different touchstones for each of the steps.

          [JENKINS-12778] Extend touchstone functionality to allow for multiple touchstones

          The easiest way to implement this without breaking the compatibility for older configurations might be to let the existing touchstone config field (touchStoneCombinationFilter) accept several semicolon separated expressions, and to split it up in MatrixBuild.java in doRun. I would assume that there is currently no valid use case for semicolons in this field, so it should not break compatibility with existing project configurations.

          It would probably look nicer to have as similar interface as is used for the axes, but I'm not familiar enough with Jenkins to be sure how to implement it without causing compatibility problems with existing projects.

          Is there any chance to get the first proposal (semicolon separated touchstones) accepted? I would like to start implementing, but if this proposal looks too messy to stand a chance I would not want to waste my time...

          Thorsten Möllers added a comment - The easiest way to implement this without breaking the compatibility for older configurations might be to let the existing touchstone config field (touchStoneCombinationFilter) accept several semicolon separated expressions, and to split it up in MatrixBuild.java in doRun. I would assume that there is currently no valid use case for semicolons in this field, so it should not break compatibility with existing project configurations. It would probably look nicer to have as similar interface as is used for the axes, but I'm not familiar enough with Jenkins to be sure how to implement it without causing compatibility problems with existing projects. Is there any chance to get the first proposal (semicolon separated touchstones) accepted? I would like to start implementing, but if this proposal looks too messy to stand a chance I would not want to waste my time...

          Here are some job configurations to test the implementation of my previous proposal (semicolon separated touchstone filters)

          Thorsten Möllers added a comment - Here are some job configurations to test the implementation of my previous proposal (semicolon separated touchstone filters)

          Updated archive: Added test case where build is expected to fail due to one failed child build in first touchstone

          Thorsten Möllers added a comment - Updated archive: Added test case where build is expected to fail due to one failed child build in first touchstone

          Implemented in git@github.com:tho74/jenkins.git, branch JENKINS-12778-fixed
          Pull request submitted, currently https://github.com/jenkinsci/jenkins/pull/377

          Thorsten Möllers added a comment - Implemented in git@github.com:tho74/jenkins.git, branch JENKINS-12778 -fixed Pull request submitted, currently https://github.com/jenkinsci/jenkins/pull/377

          Code changed in jenkins
          User: Kohsuke Kawaguchi
          Path:
          changelog.html
          http://jenkins-ci.org/commit/jenkins/7e2500c7d38ccf3b4944013afd11b75aa8c268ea
          Log:
          [FIXED JENKINS-12778] this commit and previous 2 commits

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: changelog.html http://jenkins-ci.org/commit/jenkins/7e2500c7d38ccf3b4944013afd11b75aa8c268ea Log: [FIXED JENKINS-12778] this commit and previous 2 commits

          dogfood added a comment -

          Integrated in jenkins_main_trunk #1576
          [FIXED JENKINS-12778] this commit and previous 2 commits (Revision 7e2500c7d38ccf3b4944013afd11b75aa8c268ea)

          Result = UNSTABLE
          Kohsuke Kawaguchi : 7e2500c7d38ccf3b4944013afd11b75aa8c268ea
          Files :

          • changelog.html

          dogfood added a comment - Integrated in jenkins_main_trunk #1576 [FIXED JENKINS-12778] this commit and previous 2 commits (Revision 7e2500c7d38ccf3b4944013afd11b75aa8c268ea) Result = UNSTABLE Kohsuke Kawaguchi : 7e2500c7d38ccf3b4944013afd11b75aa8c268ea Files : changelog.html

            Unassigned Unassigned
            tho75 Thorsten Möllers
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: