| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- name: CI
- on:
- push:
- branches: [main, master]
- paths-ignore:
- - '**/*.md'
- - 'docs/**'
- - '.all-contributorsrc'
- pull_request:
- branches: [main, master]
- paths-ignore:
- - '**/*.md'
- - 'docs/**'
- - '.all-contributorsrc'
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
- jobs:
- test:
- name: Required / Bun from package.json
- runs-on: ubuntu-latest
- timeout-minutes: 10
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup Bun
- uses: oven-sh/setup-bun@v2
- - name: Install dependencies
- run: bun ci
- - name: Run formatting and lint checks
- run: bun run check:ci
- - name: Run typecheck
- run: bun run typecheck
- - name: Run tests
- run: |
- mkdir -p reports
- bun test \
- --coverage \
- --coverage-reporter=text \
- --coverage-reporter=lcov \
- --coverage-dir=coverage \
- --reporter=junit \
- --reporter-outfile=reports/junit.xml
- - name: Upload test and coverage reports
- if: ${{ always() }}
- uses: actions/upload-artifact@v4
- with:
- name: test-results-bun-pinned
- path: |
- reports/junit.xml
- coverage/lcov.info
- if-no-files-found: ignore
- retention-days: 14
- - name: Build
- run: bun run build
- bun-latest-canary:
- name: Canary / Bun latest
- continue-on-error: true
- runs-on: ubuntu-latest
- timeout-minutes: 10
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup latest Bun
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
- with:
- bun-version: latest
- - name: Install dependencies
- run: bun ci
- - name: Run formatting and lint checks
- run: bun run check:ci
- - name: Run typecheck
- run: bun run typecheck
- - name: Run tests
- run: bun test
- - name: Build
- run: bun run build
|