Files
react-telegram/.github/workflows/ci.yml
2025-07-01 10:33:13 +08:00

121 lines
2.7 KiB
YAML

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint-and-type-check:
name: Lint and Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Type check packages
run: |
cd packages/core && bun run tsc --noEmit
cd ../mtcute-adapter && bun run tsc --noEmit
- name: Lint check (if configured)
run: |
echo "Add linting when ESLint is configured"
continue-on-error: true
test:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x, 22.x]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run tests
run: bun test
- name: Run example type checks
run: |
cd packages/examples
bun run tsc --noEmit
build:
name: Build Packages
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Build core package
run: |
cd packages/core
bun run build
- name: Build adapter package
run: |
cd packages/mtcute-adapter
bun run build
- name: Check build outputs
run: |
ls -la packages/core/dist/
ls -la packages/mtcute-adapter/dist/
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: |
packages/core/dist/
packages/mtcute-adapter/dist/
examples:
name: Validate Examples
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Type check examples
run: |
cd packages/examples
bun run tsc --noEmit