Igor Sirotin 4e4a00d574
ci: use golangci-lint-action@v7 for golangci-lint v2
v6 of the action rejects golangci-lint v2 versions ("v2 is not supported by
golangci-lint-action v6"). Bump to v7.

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

65 lines
2.0 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:
# Clone the logos-delivery checkout OUTSIDE the module tree: a directory
# named `vendor/` at the module root would put Go into vendor mode.
LMN_DIR: ${{ github.workspace }}/.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 }}/.logos-delivery/library/
CGO_LDFLAGS: -L${{ github.workspace }}/.logos-delivery/build/ -lwaku -Wl,-rpath,${{ github.workspace }}/.logos-delivery/build/
# Build in module mode; never use a vendor/ dir.
GOFLAGS: -mod=mod
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: git clone --depth 1 https://github.com/logos-messaging/logos-delivery.git "$LMN_DIR"
- name: Build libwaku
run: make -C "$LMN_DIR" 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
# v7 is required for golangci-lint v2.
uses: golangci/golangci-lint-action@v7
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 '^$' ./...