Files
zampler/.gitea/workflows/pr-checks.yml
T
aneurinandClaude Sonnet 5 2c288ca1e2
PR Checks / checks (pull_request) Successful in 2m14s
Build / build-and-push (push) Successful in 1m26s
add PR checks workflow
Runs on pull requests to main: frontend type-check and build, then
gofmt, go mod tidy verification, go vet, go build, and go test.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 20:27:22 +01:00

71 lines
1.6 KiB
YAML

name: PR Checks
on:
pull_request:
branches: [main]
workflow_dispatch:
jobs:
checks:
runs-on: ubuntu-latest
container:
image: golang:1.26-alpine
env:
CGO_ENABLED: "0"
steps:
- name: Install toolchain deps
run: apk add --no-cache nodejs npm git tar
- uses: actions/checkout@v4
- name: Cache npm downloads
uses: actions/cache@v4
with:
path: ~/.npm
key: npm-${{ hashFiles('frontend/package-lock.json') }}
restore-keys: npm-
- name: Cache Go modules and build cache
uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: go-${{ hashFiles('go.sum') }}-${{ hashFiles('**/*.go') }}
restore-keys: |
go-${{ hashFiles('go.sum') }}-
go-
- name: Install frontend dependencies
working-directory: frontend
run: npm ci
- name: Type-check and build frontend
working-directory: frontend
run: |
npx vue-tsc -b
npx vite build --outDir ../internal/server/static --emptyOutDir
- name: Check Go formatting
run: |
unformatted="$(gofmt -l .)"
if [ -n "$unformatted" ]; then
echo "These files are not gofmt-formatted:"
echo "$unformatted"
exit 1
fi
- name: Verify go.mod is tidy
run: |
go mod tidy
git diff --exit-code go.mod go.sum
- name: Vet
run: go vet ./...
- name: Build
run: go build ./...
- name: Test
run: go test ./...