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 - 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: Ls that shit run: ls -lah - name: Install dependencies run: bun install - name: Run ESLint run: bun run lint - name: Run TypeScript check run: bunx tsc -b --noEmit build: runs-on: ubuntu-latest needs: lint-and-test steps: - name: Checkout code uses: actions/checkout@v4 - 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: bun install - name: Build application run: bun run build - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: frontend-dist path: dist/ retention-days: 7