name: CI on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: build-and-test: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 - name: Install node uses: actions/setup-node@v6 with: node-version: '22.x' - name: Install bun uses: oven-sh/setup-bun@v2 with: bun-version: 1.3.4 bun-download-url: 'https://github.com/oven-sh/bun/releases/download/bun-v1.3.4/bun-linux-x64.zip' - name: Install dependencies run: bun ci - name: Build app run: bun --bun run build - name: Run type checking run: bun --bun run check - name: Run linting run: bun --bun run lint:check - name: Check formatting run: bun --bun run format:check # type-check: # runs-on: ubuntu-latest # container: # image: oven/bun:alpine # needs: install-dependencies # steps: # - name: Checkout code # uses: actions/checkout@v4 # - name: Download node_modules artifact # uses: actions/download-artifact@v3 # with: # name: node_modules # path: node_modules # - name: Run type checking # run: bun run check # lint: # runs-on: ubuntu-latest # container: # image: oven/bun:alpine # needs: install-dependencies # steps: # - name: Checkout code # uses: actions/checkout@v4 # - name: Download node_modules artifact # uses: actions/download-artifact@v3 # with: # name: node_modules # path: node_modules # - name: Run linting # run: bun run lint:check # format-check: # runs-on: ubuntu-latest # container: # image: oven/bun:alpine # needs: install-dependencies # steps: # - name: Checkout code # uses: actions/checkout@v4 # - name: Download node_modules artifact # uses: actions/download-artifact@v3 # with: # name: node_modules # path: node_modules # - name: Check formatting # run: bun run format:check # build: # runs-on: ubuntu-latest # container: # image: oven/bun:alpine # needs: install-dependencies # steps: # - name: Checkout code # uses: actions/checkout@v4 # - name: Download node_modules artifact # uses: actions/download-artifact@v3 # with: # name: node_modules # path: node_modules # - name: Build application # run: bun run build # - name: Upload build artifacts # uses: actions/upload-artifact@v4 # with: # name: build-output # path: build/ # retention-days: 7