ci: add PR-gate workflow and golangci-lint config

The repo had no `on: pull_request` CI (only workflow_dispatch + nightly
schedule), so nothing validated PRs. Add `.github/workflows/pr.yml` that
builds libwaku and runs `go build`, `go vet`, golangci-lint, and a test-compile
pass on every PR. Add a baseline `.golangci.yml` (standard linters + gofmt).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Igor Sirotin 2026-06-09 20:37:47 +03:00
parent cf3f6715d0
commit 3849b8a679
No known key found for this signature in database
GPG Key ID: 0EABBCB40CB9AD4A
2 changed files with 68 additions and 0 deletions

57
.github/workflows/pr.yml vendored Normal file
View File

@ -0,0 +1,57 @@
name: PR
on:
pull_request:
branches:
- master
# Cancel superseded runs on the same PR.
concurrency:
group: pr-${{ github.ref }}
cancel-in-progress: true
jobs:
gate:
runs-on: ubuntu-latest
env:
LMN_DIR: ${{ github.workspace }}/vendor/logos-delivery
# libwaku (kernel) is required at compile time for the cgo packages.
# Updated to also include liblogosdelivery once the messaging package lands.
CGO_CFLAGS: -I${{ github.workspace }}/vendor/logos-delivery/library/
CGO_LDFLAGS: -L${{ github.workspace }}/vendor/logos-delivery/build/ -lwaku -Wl,-rpath,${{ github.workspace }}/vendor/logos-delivery/build/
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.24"
- name: Clone logos-delivery
run: |
mkdir -p vendor
git clone --depth 1 https://github.com/logos-messaging/logos-delivery.git vendor/logos-delivery
- name: Build libwaku
run: make -C vendor/logos-delivery libwaku -j
- name: go build
run: go build ./...
- name: go vet
run: go vet ./...
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v2.4.0
- name: go test (compile)
# Compile every package's test binary without running the (heavy,
# integration) suite — that runs nightly in CI.yml. This keeps the PR
# gate fast and deterministic while still catching test-code breakage.
run: go test -run '^$' ./...

11
.golangci.yml Normal file
View File

@ -0,0 +1,11 @@
# golangci-lint v2 configuration.
# Baseline, low-noise gate for PRs. Tighten over time as the codebase is cleaned up.
version: "2"
linters:
# `standard` = errcheck, govet, ineffassign, staticcheck, unused.
default: standard
formatters:
enable:
- gofmt