MatrixFeature

open class MatrixFeature : BuildFeature
fun BuildFeatures.matrix(init: MatrixFeature.() -> Unit = {})

The Matrix Builds feature allows you to define a build configuration with different sets of parameters/parameter values. Running this build configuration creates a batch of separate builds, each running its own parameter set.

Example: The following snippet sets up the Matrix Build feature that produces 12 individual builds — one for each combination of available operating systems, Docker images, and Database images.

features {
    matrix {
        os = listOf(
            value("Linux"),
            value("Windows"),
            value("Mac OS")
        )
        param("docker.image", listOf(
            value("python:3.9.18-bullseye", label = "3.9.18"),
            value("python:3.12.Orc2-slim", label = "3.12.0")
        ))
        param("database.image", listOf(
            value("postgres:16rc1"),
            value("postgres:13.12")
        ))
    }
}

Constructors

Link copied to clipboard
fun MatrixFeature(init: MatrixFeature.() -> Unit)

Types

Link copied to clipboard
object Companion
Link copied to clipboard
data class Value(val value: String, val label: String? = null)

Functions

Link copied to clipboard
fun booleanParameter(    customName: String? = null,     trueValue: String? = "true",     falseValue: String? = "false"): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun clear()
Link copied to clipboard
fun <T : CompoundParam<T>> compoundParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun <T : Parametrized> copyParamsTo(target: T): T

Copies parameters of this object to the specified target

Link copied to clipboard
open fun create(): BuildFeature

Creates an instance of this build feature via reflection using a no argument constructor, used during copying. Throws an error if this class doesn't have a default constructor. Subclasses can override it to create an instance without using a default constructor.

Link copied to clipboard
fun doubleParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun <E : Enum<E>> enumParameter(customName: String? = null, mapping: Map<E, String?>? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun findRawParam(paramName: String): Parameter?
Link copied to clipboard
fun hasParam(paramName: String): Boolean
Link copied to clipboard
fun intParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun param(name: String, values: List<MatrixFeature.Value>)

Adds a new parameter with specified values to the matrix build.

fun param(name: String, value: String)

Adds parameter with specified name and value

Link copied to clipboard
fun removeRawParam(paramName: String)
Link copied to clipboard
open fun stringParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun validate(consumer: ErrorConsumer)

Validates this object and reports found errors to the provided consumer

Link copied to clipboard
fun value(value: String, label: String? = null): MatrixFeature.Value

Creates a Value object that stores a parameter value and its optional label.

Properties

Link copied to clipboard
var enabled: Boolean = true

Specifies whether the feature is enabled, true by default

Link copied to clipboard
var id: String? = null

Build feature id, if not specified will be generated

Link copied to clipboard
var os: List<MatrixFeature.Value>?

Operating systems

Link copied to clipboard
val params: List<Parameter>
Link copied to clipboard
var type: String

Build feature type