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