krply/.github/workflows/ci.yml

66 lines
1.4 KiB
YAML

name: ci
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
go:
name: build and test
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
with:
go-version: "1.22.x"
cache: true
- name: Build
run: go build ./...
- name: Vet
run: go vet ./...
- name: Unit tests
run: go test ./...
- name: Integration tests (fake apiserver)
run: go test -tags integration ./test/integration/... -timeout 20m
- name: End-to-end tests
run: go test -tags e2e ./test/e2e/... -timeout 30m
web:
name: build web ui
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: "22"
- name: Install
working-directory: web
run: npm ci
- name: Lint
working-directory: web
run: npm run lint
- name: Build
working-directory: web
run: npm run build
- name: Verify dist
run: test -d web/dist && test -f web/dist/index.html