48 lines
979 B
YAML
48 lines
979 B
YAML
name: ci
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
test:
|
|
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
|
|
|
|
- name: setup bun
|
|
uses: oven-sh/setup-bun@v2
|
|
|
|
- name: install templ
|
|
run: go install github.com/a-h/templ/cmd/templ@latest
|
|
|
|
- name: verify templates generated
|
|
run: |
|
|
templ generate
|
|
if [ -n "$(git status --porcelain -- '*_templ.go')" ]; then
|
|
echo "templ output is out of date"
|
|
git status --short -- '*_templ.go'
|
|
exit 1
|
|
fi
|
|
|
|
- name: install frontend deps
|
|
run: bun install --frozen-lockfile
|
|
|
|
- name: typecheck
|
|
run: bun run typecheck
|
|
|
|
- name: build assets
|
|
run: bun run build:assets
|
|
|
|
- name: go test
|
|
run: go test ./...
|
|
|
|
- name: go vet
|
|
run: go vet ./...
|