name: CI on: push: branches: ["**"] pull_request: permissions: contents: read jobs: test: runs-on: ubuntu-latest env: NEXT_TELEMETRY_DISABLED: "1" DATABASE_URI: postgresql://ci:ci@localhost:5432/ci PAYLOAD_SECRET: ci-only-not-a-real-secret MEETING_SESSION_SECRET: ci-only-not-a-real-secret ANALYTICS_SALT_SECRET: ci-only-not-a-real-secret CRON_SECRET: ci-only-not-a-real-secret NEXT_PUBLIC_SERVER_URL: http://localhost:3000 steps: - name: Checkout uses: actions/checkout@v5 - name: Use Node.js 22 uses: actions/setup-node@v5 with: node-version: 22 cache: npm - name: Install dependencies run: npm ci - name: Lint run: npm run lint - name: Typecheck run: npx next typegen && npx tsc --noEmit - name: Test run: npm test build-image: needs: test if: github.ref == 'refs/heads/main' && github.event_name == 'push' runs-on: ubuntu-latest permissions: actions: write contents: read packages: write env: IMAGE: ghcr.io/whitehai11/anouma steps: - name: Checkout uses: actions/checkout@v5 - name: Log in to registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push image uses: docker/build-push-action@v6 with: context: . push: true tags: ${{ env.IMAGE }}:${{ github.sha }} cache-from: type=gha,scope=anouma-image cache-to: type=gha,mode=max,scope=anouma-image