Skip to content

feat: update base path from /api/cp to /ctrlplane across the application #50

feat: update base path from /api/cp to /ctrlplane across the application

feat: update base path from /api/cp to /ctrlplane across the application #50

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: Download modules
run: go mod download
- name: Verify module tidy
run: |
go mod tidy
git diff --exit-code go.mod go.sum
- name: Build
run: go build ./...
- name: Test
run: go test -race -count=1 -coverprofile=coverage.out ./...
- name: Upload coverage
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v6
with:
name: coverage-go${{ matrix.go-version }}
path: coverage.out
retention-days: 7
# ─── 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: golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: latest
args: --timeout 10m
# ─── 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/ctrlplane .)
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