name: CI on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: install-dependencies: runs-on: ubuntu-latest container: image: oven/bun:alpine steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Dependencies run: bun install --frozen-lockfile - name: Upload node_modules artifact uses: actions/upload-artifact@v4 with: name: node_modules path: node_modules retention-days: 1 # 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