--- name: CI on: push: branches: ["*"] pull_request: jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install linters run: pip install ansible-lint yamllint - name: Lint run: make lint matrix: runs-on: ubuntu-latest outputs: matrix: ${{ steps.build.outputs.matrix }} steps: - uses: actions/checkout@v4 - name: Install PyYAML run: pip install pyyaml - name: Build matrix id: build run: echo "matrix=$(python3 ci/build_matrix.py)" >> "$GITHUB_OUTPUT" test: needs: [lint, matrix] runs-on: ubuntu-latest strategy: matrix: include: ${{ fromJson(needs.matrix.outputs.matrix) }} fail-fast: false steps: - uses: actions/checkout@v4 - name: Install PyYAML run: pip install pyyaml - name: Test ${{ matrix.slug }} run: make test-${{ matrix.slug }}