diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 000000000..1355c087d --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,86 @@ +name: PR Check + +on: + pull_request: + branches: + - main + push: + branches: + - main + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + frontend: + name: Frontend + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '24' + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Type check + run: npm run type-check + + - name: Lint + run: npm run lint + + - name: Build + run: npm run build + env: + VERSION: ci + + usage-service: + name: Usage Service + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.24.x' + cache-dependency-path: usage-service/go.sum + + - name: Test + working-directory: usage-service + run: go test ./... + + docker-build: + name: Docker Build + runs-on: ubuntu-latest + needs: + - frontend + - usage-service + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Usage Service image + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile.usage-service + push: false + build-args: | + VERSION=ci