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 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 '^$' ./...