name: CI on: push: paths-ignore: - 'docs/**' - '*.md' pull_request: paths-ignore: - 'docs/**' - '*.md' # This allows a subsequently queued workflow run to interrupt previous runs concurrency: group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" cancel-in-progress: true jobs: dependency-review: name: Dependency Review if: github.event_name == 'pull_request' runs-on: ubuntu-latest permissions: contents: read steps: - name: Check out repo uses: actions/checkout@v3 with: persist-credentials: false - name: Dependency review uses: actions/dependency-review-action@v3 test: name: Test runs-on: ${{ matrix.os }} outputs: COVERALLS: ${{ steps.coveralls-trigger.outputs.COVERALLS_TRIGGER }} permissions: contents: read strategy: matrix: node-version: [14, 16, 18] os: [ubuntu-latest] steps: - name: Check out repo uses: actions/checkout@v3 with: persist-credentials: false - name: Setup Node ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Restore cached dependencies uses: actions/cache@v3 with: path: node_modules key: node-modules-${{ hashFiles('package.json') }} - name: Install dependencies run: npm i --ignore-scripts - name: Run tests run: npm run ci - name: Coveralls Parallel id: coveralls-parallel uses: coverallsapp/github-action@v2.2.0 continue-on-error: true with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel: true flag-name: run-${{ matrix.node-version }}-${{ matrix.os }} - name: Should Trigger coverallsapp/github-action@master id: coveralls-trigger # https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#steps-context # when continue-on-error failed, outcome is failure and conclusion is success if: steps.coveralls-parallel.conclusion == 'success' && steps.coveralls-parallel.outcome != 'success' run: | echo "::set-output name=COVERALLS_TRIGGER::failure" coverage: needs: test runs-on: ubuntu-latest if: needs.test.outputs.COVERALLS != 'failure' steps: - name: Coveralls Finished uses: coverallsapp/github-action@v2.2.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel-finished: true automerge: name: Automerge Dependabot PRs if: > github.event_name == 'pull_request' && github.event.pull_request.user.login == 'dependabot[bot]' needs: test permissions: pull-requests: write contents: write runs-on: ubuntu-latest steps: - uses: fastify/github-action-merge-dependabot@v3 with: github-token: ${{ secrets.GITHUB_TOKEN }}