Skip to content

chore: OSS hygiene, branding, and onboarding #264

chore: OSS hygiene, branding, and onboarding

chore: OSS hygiene, branding, and onboarding #264

Workflow file for this run

name: ci
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
pr-title:
name: Validate PR Title
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
quality:
name: Quality (Lint & Vuln)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache-dependency-path: "**/*.sum"
# - name: Cache Tools and Modules
# uses: actions/cache@v4
# with:
# path: |
# ~/go/bin
# ~/go/pkg/mod
# ~/.cache/golangci-lint
# # Key based on tools/tools.go and go.sum (tool versions only)
# # This cache is stable: only invalidates when tools change, not app dependencies
# # Caches both binaries and modules to prevent re-downloading on every run
# key: ${{ runner.os }}-tools-${{ hashFiles('tools/tools.go', 'go.sum') }}
# restore-keys: |
# ${{ runner.os }}-tools-
- name: Install tools
# Use make tools to install versions pinned in go.mod/tools.go
# With the cache above, this will be a near-instant no-op if binaries exist
run: make tools
- name: Lint
run: make lint
- name: Vulnerability scan
run: make vuln
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache-dependency-path: |
tools/tools.go
go.mod
- name: Test with coverage
run: make test-coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: .coverage/coverage.out
fail_ci_if_error: false
cli-smoke:
name: CLI Smoke Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.25.7"
cache-dependency-path: |
tools/tools.go
go.mod
- name: Build CLI
run: make cli-smoke-build
- name: Test CLI scaffolding
run: make cli-smoke-scaffold