Plugin Information
Plugin ID |
matrix-project |
Changes |
|
|---|---|---|---|
Latest Release |
1.12 (archives) |
Source Code |
GitHub |
Usage |
|
Installations |
2016-Oct 123415 |
See Building a matrix project for user information.
In the New Item user interface, this plugin contributes the following one:
Extensions
See all extension points here: Matrix Project Extension Points
Matrix Axis Extension
-
Sauce OnDemand Plugin — This plugin allows you to integrate Sauce Selenium Testing with Jenkins.
-
Yaml Axis Plugin — Matrix project axis creation and exclusion plugin using yaml file (It's similar to .travis.yml)
-
Selenium Axis Plugin —
Creates an axis based on a local Selenium grid and also build against the SauceLabs Selenium capability at the same time.
Both components rebuild before each build to take advantage of any new capabilities.The Selenium grid uses all capabilities available and the SauceLab one a random subset, which can be configured or disabled.
-
DynamicAxis Plugin —
This plugin allows you to define a matrix build axis that is dynamically populated from an environment variable:
-
NodeLabel Parameter Plugin — This plugin adds two new parameter types to job configuration - node and label, this allows to dynamically select the node where a job/project should be executed.
-
Matrix Groovy Execution Strategy Plugin — A plugin to decide the execution order and valid combinations of matrix projects.
If your plug-in is not listed here, then simply add the label matrix-axis-producer to your plug-in wiki page and it will be automatically listed.
Changelog
Version 1.12 (Oct 3, 2017)
- Align test result table headers where fields are
- Allow MatrixAggregatable to be registered as an (optional) extension.
- Fix potential locking problem in MatrixProject
Version 1.11 (May 12, 2017)
JENKINS-43990 Upgrade to new parent pom and other related fixes
Version 1.10 (Apr 19, 2017)
- JENKINS-39739 Argument passed to createVariableResolver() must never be null
- JENKINS-43390 Loading parameters from xml file causes that the same parameters are different objects for matrix configuration builds
- JENKINS-34389 Fixed handling of dynamic axis
Version 1.9 (Mar 24, 2017)
- Optimized matrix configuration label computation
JENKINS-34389 Improved handling of axis rebuild
- Fixed StringIndexOutOfBoundsException if label have no values
Make matrix build able to survive restarts
Version 1.8 (Jan 12, 2017)
- Fixed handling of dynamic axis
- Fix race condition where A NPE is thrown when an item is being processed
- Improved German Translation
Version 1.7.1 (Jun 24, 2016)
- JENKINS-32230 Disable WARNING log when folder is already existed
Version 1.7 (May 24, 2016)
- JENKINS-34758 Parameters visibility in child builds (related to SECURITY-170)
Version 1.6 (Jun 18, 2015)
- JENKINS-JENKINS-28909 Do not enforce safe characters for axis values (regression from 1.5).
Version 1.5 (Jun 08, 2015)
- Now requires 1.609+.
- JENKINS-25221 Use new internal control.
- Fix NullPointerException if swapping between MatrixExecutionStrategies
- JENKINS-25449 Better form validation.
- JENKINS-13554 Cleaner handling of build deletion.
- JENKINS-23614 URL escaping fix.
- JENKINS-9277 JENKINS-23614 JENKINS-25448 Reject invalid axis name/value.
- Display axis name in tooltip.
- JENKINS-27162 Log touchstone build results.
- JENKINS-26582 Errors when starting builds from Git commit notifications.
Version 1.4.1 (Feb 27, 2015)
Bundled in 1.596.1 and 1.600. Do not update to this release if using an older Jenkins version. If you have already updated, use Plugin Manager » Installed to revert to your previous version.
- Fixed a security issue related to the combinations filter script. You need to update Jenkins to 1.596.1 or 1.600 to get this fix.
Version 1.4 (Oct 14, 2014)
Automatic deletion of inactive configurations from the disk
JENKINS-24282 Use noun phrase in the New Item dialog
JENKINS-19179 Prevent the disabling of matrix configurations (e.g. by checkout failures in Subversion plugin)
Version 1.3 (Jul 22, 2014)
- Moved in a file which was accidentally left behind in core.
- Preparing for possible split of test reporting functionality into a plugin.
- Portuguese translation fix.
Version 1.2 (May 07, 2014)
- JENKINS-22798 Fixed another class loading problem related to split.
Version 1.1 (May 06, 2014)
- JENKINS-22863 Fixed class loading problem affecting combination filters after split.
Version 1.0 (Apr 28, 2014)
- Depending on 1.561 final.
Version 1.0 beta 1 (Apr 14, 2014)
- Split off from core as of 1.561.

9 Comments
Brian Collum
Jenkins 1.573
Matrix Project Plugin 1.3
Perforce as my SCM
I have a matrix project that has four different variations (two columns, two rows).
From what I can tell this means it actually makes 5 (not 4) workspaces. One that I will refer to as the "Main" workspace that actually never gets used as well as the 4 others for each element in the Matrix.
I have to use "Always Force Sync" because otherwise it only synchronizes my "Main" workspace and not any of the other 4 that are where the builds actually happen. Is there a reason it does this?
I'm not sure if this is really an incompatibility between the Matrix Plugin and the Perforce Plugin. Not sure at this point.
It is just annoying and time consuming that I have to do a complete download of the entire workspace (5 times!) before building every time.
Oleg Nenashev
Please submit issues to Jenkins JIRA if you expect to get a response
> From what I can tell this means it actually makes 5 (not 4) workspaces. One that I will refer to as the "Main" workspace that actually never gets used as well as the 4 others for each element in the Matrix.
As designed.You can use/develop http://javadoc.jenkins-ci.org/jenkins/scm/SCMCheckoutStrategy.html extension to alter the behavior
> I have to use "Always Force Sync" because otherwise it only synchronizes my "Main" workspace and not any of the other 4 that are where the builds actually happen. Is there a reason it does this?
I don't see such behavior on my installations. Force sync works on configurations as well
Kevin Navero
In my matrix project, my SCM section is set to git and I configured it the same way as I have it in a non-matrix project (which works fine in the non-matrix project), but when I run the matrix project, the spawned child jobs consistently output the following to the logs:
Fetching upstream changes from git://carson/SRC/SRC.git
> git.exe --version # timeout=10
> git.exe -c core.askpass=true fetch --tags --progress git://foo/src/src.git +refs/heads/*:refs/remotes/origin/*
ERROR: Timeout after 10 minutes
ERROR: Error cloning remote repo 'origin'
In the parent job or master executor, it seems to get passed the mapping of remote branches to local branches just fine. I have git://foo/src/src.git set as repo url, and origin as name. I'm running on Windows 7. Any ideas? Thanks in advance.
Kevin Navero
Found a solution - increase the timeout in SCM -> Additional Behaviors -> Advanced Clone Behaviors. Increased it to 30 minutes. Makes sense that it'd take longer too since 4 configurations are running in parallel.
Dylan Maxwell
Using the Matrix Project plugin and it seems that the job execution order is random. Is this by design?
Looking at the source code I found the NoopMatrixConfigurationSorter, which appears to do exactly what I want, sort the execution by job display name.
Is there a way to enable the NoopMatrixConfigurationSorter? Or is it supposed to be enabled by default?
Any help would be appreciated.
Matt Taylor
For some reason when I choose to restrict where the project can be run it does not spin up the node like I want it too for the master "flyweight" node.
It just sits there and never triggers or brings up the master node? why is this?
Matt Taylor
Also when it checks out SVN why does it check it out on the flyweight node? isn't that just a task to start the others?
Sasha Miroshnich
Where can I check the changelog for versions from 1.7.1 to 1.10 ?
Sasha Miroshnich
Raul Arabaolaza, thanks a lot for an update with changelogs!
Add Comment