chore: OSS hygiene, branding, and onboarding #264
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |