Skip to content

build(deps): bump the minor-and-patch group across 1 directory with 3 updates #75

build(deps): bump the minor-and-patch group across 1 directory with 3 updates

build(deps): bump the minor-and-patch group across 1 directory with 3 updates #75

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
# ─── Go Build & Test ────────────────────────────────────────────────
go:
name: Go
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go-version: ["1.25.7"]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
cache: true
cache-dependency-path: "**/go.sum"
- name: Verify modules are tidy
run: |
for mod in $(find . -name 'go.mod' -exec dirname {} \; | sort); do
echo "Tidying $mod..."
(cd "$mod" && go mod tidy)
done
go work sync
git diff --exit-code
- name: Build all modules
run: |
for mod in $(find . -name 'go.mod' -exec dirname {} \; | sort); do
echo "Building $mod..."
(cd "$mod" && go build ./...)
done
- name: Test all modules
run: |
for mod in $(find . -name 'go.mod' -exec dirname {} \; | sort); do
echo "Testing $mod..."
(cd "$mod" && go test -race -count=1 ./...)
done
# ─── Lint ───────────────────────────────────────────────────────────
lint:
name: Lint
runs-on: ubuntu-latest
needs: go
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache: true
cache-dependency-path: "**/go.sum"
- name: Install golangci-lint
env:
GOLANGCI_LINT_VERSION: v2.12.1
run: |
set -euo pipefail
version="${GOLANGCI_LINT_VERSION#v}"
dir="golangci-lint-${version}-linux-amd64"
tarball="${dir}.tar.gz"
base="https://github.com/golangci/golangci-lint/releases/download/${GOLANGCI_LINT_VERSION}"
curl -sSfL -o "$tarball" "${base}/${tarball}"
curl -sSfL -o checksums.txt "${base}/golangci-lint-${version}-checksums.txt"
grep " ${tarball}$" checksums.txt | sha256sum -c -
tar -xzf "$tarball"
install -m 0755 "${dir}/golangci-lint" "$(go env GOPATH)/bin/golangci-lint"
golangci-lint --version
- name: Lint all modules
run: |
for mod in $(find . -name 'go.mod' -exec dirname {} \; | sort); do
echo "Linting $mod..."
(cd "$mod" && golangci-lint run --timeout 10m ./...)
done
# ─── Format Check ──────────────────────────────────────────────────
format:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache: true
cache-dependency-path: "**/go.sum"
- name: Install goimports
run: go install golang.org/x/tools/cmd/goimports@latest
- name: Check formatting (goimports)
run: |
OUTPUT=$(goimports -l -local github.com/xraph/nexus .)
if [ -n "$OUTPUT" ]; then
echo "::error::The following files need goimports formatting:"
echo "$OUTPUT"
exit 1
fi
# ─── Docs ───────────────────────────────────────────────────────────
docs:
name: Docs
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 22
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Cache pnpm
uses: actions/cache@v5
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-${{ hashFiles('docs/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Type check
run: pnpm types:check
- name: Lint
run: pnpm lint
- name: Build
run: pnpm build