Skip to content

v2

v2 #5

Workflow file for this run

name: CI
on:
push:
branches:
- main
- master
pull_request: {}
concurrency:
group: ci-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
tests:
name: "Tests"
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v4
with:
version: 9
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm lint
- name: Run Tests
run: pnpm test
tries:
name: Node ${{ matrix.node }}, Chai ${{ matrix.chai }}
needs: "tests"
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
node: [18, 20, 22]
chai: [3, 4, 5]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v4
with:
version: 9
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: pnpm
- name: Install Dependencies
run: |
node -v
pnpm install --frozen-lockfile
pnpm i -D chai@${{ matrix.chai }}
- name: Lint
run: pnpm lint
- name: Run Tests
run: pnpm test
validate-success:
needs: ["tries"]
runs-on: ubuntu-latest
outputs:
success: ${{ steps.set-output.outputs.success }}
steps:
- id: set-output
run: echo "success=true" >> $GITHUB_OUTPUT
notify-success:
name: CI pipeline succeeded
needs: ["validate-success"]
if: always() # Always run, so we never skip this required check
runs-on: ubuntu-latest
steps:
- name: Note Pipeline Passed
run: |
msgPrefix="Pipeline #${{ github.run_id }} finished"
passed="${{ needs.validate-success.outputs.success }}"
if [[ "$passed" == "true" ]]; then
echo "${msgPrefix}, PR passed all tests."
exit 0
else
echo "${msgPrefix}, but with failures. Check left sidebar summary to see which jobs failed."
exit 1
fi