Skip to content

docs(readme): add interactive oblique code-map SVG (#54) #220

docs(readme): add interactive oblique code-map SVG (#54)

docs(readme): add interactive oblique code-map SVG (#54) #220

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
test:
name: Build & Test
runs-on: ubuntu-latest
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
with:
# Latest 1.25 patch, not the exact go.mod floor: base 1.25.0 ships with
# stdlib CVEs later patched in 1.25.9–.12, which the vuln scan flags.
go-version: "1.25"
check-latest: true
cache: true
- name: Check formatting
run: test -z "$(gofmt -l .)" || (gofmt -l . && exit 1)
- name: Build
run: go build ./...
- name: Vet
run: go vet ./...
- name: Build examples (separate module)
run: cd _examples && go vet ./...
- name: Vulnerability scan
run: go run golang.org/x/vuln/cmd/govulncheck@latest ./...
- name: Test (race + coverage)
env:
# Run the webhook drain-timing regression tests (otherwise skipped).
BOTBOOTER_WHATSAPP_DRAIN_TIMING_TEST: "1"
BOTBOOTER_TEAMS_DRAIN_TIMING_TEST: "1"
BOTBOOTER_GITHUB_DRAIN_TIMING_TEST: "1"
run: go test -race -covermode=atomic -coverprofile=coverage.txt ./...
- name: Upload coverage to Codecov
if: ${{ env.CODECOV_TOKEN != '' }}
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
files: ./coverage.txt
token: ${{ env.CODECOV_TOKEN }}
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
with:
go-version: "1.25"
check-latest: true
- uses: golangci/golangci-lint-action@82606bf257cbaff209d206a39f5134f0cfbfd2ee # v9.2.1
with:
version: v2.12