.github/workflows/ci.yml
name: ci
on:
push:
branches: [master]
paths-ignore: ['**.md']
pull_request: {}
workflow_dispatch: {}
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- run: bun install --frozen-lockfile
- run: bun run build
- run: bun run test
# FIXME: Enable coverage reporting once bun test supports it; https://github.com/oven-sh/bun/issues/2311
# - name: Report coverage
# run: |
# curl -Lo ./cc-test-reporter https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
# chmod +x ./cc-test-reporter
# ./cc-test-reporter format-coverage -t lcov -o coverage/codeclimate.json coverage/lcov.info
# ./cc-test-reporter upload-coverage
# env:
# CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
lint:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- run: bun install --frozen-lockfile
- run: bun run lint
# this is more for a heads up and should not cause PRs to fail
no-untracked:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- run: bun install --frozen-lockfile
- run: bun run build
- name: Check no untracked changes
run: |
git_status=$(git status --porcelain)
echo "$git_status"
test -z "$git_status" || exit 1