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

Multiple Label Axises

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Duplicate
    • Icon: Major Major
    • matrix-project-plugin
    • None
    • Platform: All, OS: All

      It would be great if the configuration of a matrix project allowed multiple
      axises based on nodes/labels.

      My Use Case:
      I'm configuring a multiple arch/multiple compiler matrix. But some of my
      compilers are licensed and only on specific slaves.

      Example:
      archs: window_32, linux_32, etc(these are all configured as labels)
      compilers: compiler_a, compiler_b (also configured as labels)

      We have multiple slaves labeled as windows_32 but only one also has compiler_a.
      So ideally the Queue would choose that node when executing the
      windows_32/compiler_a combination.

      An approach I've considered is using the name/values axises to deduce which
      nodes are capable of executing a build. This would work by checking if an axis
      value is also a label. If it is a label then the combination would be limited
      to nodes with that label. If the value is not a label it would behave as
      before. This would allow for complex matching of a combination to specific
      nodes. My idea for implementation is overriding the getAssignedLabel() in
      MatrixConfiguration to return a special MatrixLabel that has a new getNodes()
      method only returning the nodes with all the labels in the combination. This
      would then not require any changes to the choose(Task) method in Queue.

      I'm going to try and test my implementation idea. Any feedback on the
      implications of extending Label would be appreciated. It's not marked as
      Seriablizable so I think it would be okay.

            Unassigned Unassigned
            josephalevin josephalevin
            Votes:
            2 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: