Skip to content

CI

CI #1

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
jobs:
backend:
name: Backend (Go)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Install goimports
run: go install golang.org/x/tools/cmd/goimports@latest
- name: Check Go formatting/imports
run: ./scripts/check-go-format.sh
- name: Go vet
run: go vet ./...
- name: Go test
run: go test ./... -count=1
proto:
name: Proto (buf)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup buf
uses: bufbuild/buf-setup-action@v1
- name: Check proto formatting
run: buf format -d --exit-code
- name: Proto lint
run: buf lint
- name: Buf build
run: buf build
frontend:
name: Frontend (Next.js)
runs-on: ubuntu-latest
defaults:
run:
working-directory: ui
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
cache-dependency-path: ui/package-lock.json
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint
- name: Prettier check
run: npm run format
- name: Typecheck
run: npm run typecheck
- name: Build
run: npm run build