- Format cmd/loadtest/main.go with gofmt - Downgrade go.mod to go 1.24 for golangci-lint compatibility - Update CI workflow Go version to 1.24 - Fix deprecated govet check-shadowing → shadow Co-Authored-By: Paperclip <noreply@paperclip.ing>
88 lines
1.9 KiB
YAML
88 lines
1.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
go:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.24'
|
|
cache: true
|
|
|
|
- name: Check formatting
|
|
run: |
|
|
if [ -n "$(gofmt -l .)" ]; then
|
|
echo "Files not formatted:"
|
|
gofmt -l .
|
|
exit 1
|
|
fi
|
|
|
|
- name: Vet
|
|
run: go vet ./...
|
|
|
|
- name: Test
|
|
run: go test ./... -v -race
|
|
|
|
- name: Build
|
|
run: CGO_ENABLED=0 go build -o /dev/null ./cmd/hatch
|
|
|
|
docker:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Build Docker image
|
|
run: docker build -t hatch:ci .
|
|
|
|
- name: Smoke test the Docker image
|
|
run: |
|
|
docker run --rm -d -p 8080:8080 --name hatch-ci hatch:ci
|
|
sleep 2
|
|
curl -fsS http://localhost:8080/healthz | grep -q 'ok'
|
|
docker stop hatch-ci
|
|
|
|
lint-go:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.24'
|
|
cache: true
|
|
|
|
- name: Run golangci-lint
|
|
uses: golangci/golangci-lint-action@v6
|
|
with:
|
|
version: latest
|
|
|
|
lint-docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Check markdown formatting
|
|
uses: DavidAnson/markdownlint-cli2-action@v16
|
|
with:
|
|
globs: '**/*.md'
|
|
continue-on-error: true
|
|
|
|
check-paperclip:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Need full history for PR range
|
|
- name: Check for Paperclip references in commit messages
|
|
run: ./scripts/check-paperclip.sh
|
|
env:
|
|
GITHUB_EVENT_NAME: ${{ github.event_name }}
|
|
GITHUB_BASE_REF: ${{ github.base_ref }}
|