Github Actions Matrix

Introduction to Github Actions Matrix

Github Actions Matrix is an incredibly powerful feature that allows you to run your builds and tests on multiple environments with ease. In this tutorial, we will learn how to use matrix with Github Actions to create efficient and dynamic workflows.

Setting Up Matrix in Your Workflow

First, let's create a basic Github Actions workflow file in your repository under '.github/workflows' directory. We will name the file 'matrix-workflow.yml'. This file will contain our matrix configuration.

Here's an example of a matrix configuration for a Node.js project:

name: Matrix Workflow

on: push

    runs-on: ubuntu-latest
        node-version: [12.x, 14.x, 16.x]

    - uses: actions/checkout@v2
    - name: Setup Node.js
      uses: actions/setup-node@v2
        node-version: ${{ matrix.node-version }}
    - name: Install Dependencies
      run: npm ci
    - name: Build and Test
      run: npm run build && npm test

How Matrix Configuration Works

In the example above, we defined a matrix consisting of three Node.js versions (12.x, 14.x, and 16.x). The '${{ matrix.node-version }}' variable is used to set the Node.js version in the steps. For each version specified in the matrix, a separate run of the build and test steps will be executed. This allows you to test your project on multiple environments in parallel, which can catch potential compatibility issues early on.


This tutorial provided an introduction to using matrix with Github Actions to create dynamic and efficient workflows. By leveraging the power of the matrix configuration, you can ensure your projects run smoothly across multiple environments, saving you time and effort in the long run.