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