Skip to content

Merge pull request #25 from renovate-bot/renovate/actions-attest-4.x #66

Merge pull request #25 from renovate-bot/renovate/actions-attest-4.x

Merge pull request #25 from renovate-bot/renovate/actions-attest-4.x #66

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request:
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.25.5'
cache-dependency-path: go.sum
- name: Run tests with coverage
run: go test -coverprofile=coverage.out -covermode=atomic ./...
- name: Generate coverage summary
run: |
{
echo "## Test Coverage Report"
echo ""
} >> "$GITHUB_STEP_SUMMARY"
# Get overall coverage
COVERAGE=$(go tool cover -func=coverage.out | \
grep total | \
awk '{print $3}' \
)
{
echo "**Overall Coverage:** $COVERAGE"
echo ""
echo "### Coverage by Package"
echo ""
echo "| Package | Coverage |"
echo "|---------|----------|"
go tool cover -func=coverage.out | \
grep -v "total:" | \
awk '{print "| " $1 " " $2 " | " $3 " |"}'
} >> "$GITHUB_STEP_SUMMARY"
- name: Upload coverage to artifacts
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: coverage.out
vet:
name: Vet
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.25.5'
cache-dependency-path: go.sum
- name: Run go vet
run: go vet ./...
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.25.5'
cache-dependency-path: go.sum
- name: Install golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.7.2
- name: Run golangci-lint
run: golangci-lint run ./...
gomod:
name: Go Mod Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.25.5'
cache-dependency-path: go.sum
- name: Run go mod tidy
run: go mod tidy
- name: Check for changes
run: |
git diff --exit-code go.mod go.sum || (
echo "go.mod or go.sum has uncommitted changes after 'go mod tidy'"
exit 1
)
build:
name: Build Binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Build binary target
run: |
docker buildx build . \
--target binary \
--output type=local,dest=build \
--cache-from type=gha \
--cache-to type=gha,mode=max
passed:
name: CI passed
needs: [test, vet, lint, gomod, build]
runs-on: ubuntu-latest
if: always()
steps:
- name: Check all jobs succeeded
run: |
if [ "${{ needs.test.result }}" != "success" ] || \
[ "${{ needs.vet.result }}" != "success" ] || \
[ "${{ needs.lint.result }}" != "success" ] || \
[ "${{ needs.gomod.result }}" != "success" ] || \
[ "${{ needs.build.result }}" != "success" ]; then
echo "❌ One or more CI jobs failed"
exit 1
fi
echo "✅ CI passed"