Igor Sirotin 2888451de8
ci: scope golangci-lint to new code via new-from-merge-base
Run the full `standard` linter set but only report findings introduced since
the merge-base with master, so the legacy kernel wrapper's pre-existing issues
(unchecked defer-Close, dead helpers) don't drown the gate while new code still
gets full coverage. Fetch origin/master so the base ref is available in CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 20:50:02 +03:00

62 lines
1.8 KiB
YAML

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: Ensure base ref is available for lint
# golangci-lint's new-from-merge-base needs origin/master present.
run: git fetch --no-tags origin master
- 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 '^$' ./...