name: Frontend CI on: push: branches: - main pull_request: branches: - main jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 1 # - name: Setup Bun # uses: oven-sh/setup-bun@v2 # with: # bun-version: latest # - name: Cache dependencies # uses: actions/cache@v4 # with: # path: ~/.bun/install/cache # key: ${{ runner.os }}-bun-${{ hashFiles('frontend/bun.lockb') }} # restore-keys: | # ${{ runner.os }}-bun- # - name: Install dependencies # run: | # cd frontend # bun install # - name: Run ESLint # run: | # cd frontend # bun run lint # - name: Run TypeScript check # run: | # cd frontend # bunx tsc -b --noEmit build: runs-on: ubuntu-latest needs: lint steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 1 # - name: Setup Bun # uses: oven-sh/setup-bun@v2 # with: # bun-version: latest # - name: Cache dependencies # uses: actions/cache@v4 # with: # path: ~/.bun/install/cache # key: ${{ runner.os }}-bun-${{ hashFiles('frontend/bun.lockb') }} # restore-keys: | # ${{ runner.os }}-bun- # - name: Install dependencies # run: | # cd frontend # bun install # - name: Build application # run: | # cd frontend # bun run build # - name: Upload build artifacts # uses: actions/upload-artifact@v4 # with: # name: frontend-dist # path: frontend/dist/ # retention-days: 7