name: Quality check on: push: branches: - "*" pull_request: permissions: contents: read jobs: static-analysis: name: Static analysis runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: 'stable' - run: go vet ./... - name: staticcheck uses: dominikh/staticcheck-action@v1.3.0 with: install-go: false web-ui: name: Web UI runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: '22' cache: npm cache-dependency-path: web/frontend/package-lock.json - name: Install dependencies run: npm ci working-directory: web/frontend - name: Build run: npm run build working-directory: web/frontend - name: Check that the embedded web/dist is up to date run: | git diff --exit-code -- web/dist || (echo "::error::web/dist is stale, run 'make web' and commit the result" && exit 1) tests: name: Tests runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: 'stable' - run: go test ./...