name: Matrix Example triggers: push: branches: ["main"] pull_request: branches: ["main"] env: GLOBAL_VAR: "This applies to all jobs" jobs: test: name: "Test" strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: [14, 16, 18] include: - os: ubuntu-latest node-version: 20 experimental: true exclude: - os: windows-latest node-version: 14 fail-fast: false max-parallel: 2 steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Show configuration run: | echo "Running on: ${{ matrix.os }}" echo "Node version: ${{ matrix.node-version }}" if [ "${{ matrix.experimental }}" = "true" ]; then echo "This is an experimental configuration" fi