What is a GitHub Actions 'job matrix' and what does it enable?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Matrix strategy is your 'test everything' shortcut. Define test dimensions — Node.js 16/18/20, Ubuntu/Windows — and GitHub creates a job for every combination automatically. One job definition, runs as many variants as you need, all in parallel.
Full explanation below image
Full Explanation
A GitHub Actions matrix strategy creates multiple job instances from a single job definition by iterating over defined variables. Configuration: 'strategy: matrix: variable_name: [value1, value2, value3]'. GitHub creates one job instance for each combination of matrix values. Features: (1) Multiple dimensions — define multiple variables and GitHub creates the Cartesian product (all combinations). (2) include/exclude — add specific combinations that aren't in the matrix or exclude unwanted combinations. (3) fail-fast — if true (default), cancels all in-progress matrix jobs when one fails. (4) max-parallel — limits simultaneous matrix jobs. Common use cases: testing across multiple OS (ubuntu, windows, macos), multiple language versions (Python 3.9, 3.10, 3.11), multiple dependency versions. Reference matrix values in steps with '${{ matrix.variable_name }}'.