Skip to content

Merge pull request #4 from alibaba/dependabot/github_actions/goreleas… #21

Merge pull request #4 from alibaba/dependabot/github_actions/goreleas…

Merge pull request #4 from alibaba/dependabot/github_actions/goreleas… #21

Workflow file for this run

name: CI
on:
push:
branches: [main]
paths-ignore:
- 'docs/**'
- '*.md'
- '.github/workflows/docs.yml'
pull_request:
branches: [main]
paths-ignore:
- 'docs/**'
- '*.md'
- '.github/workflows/docs.yml'
permissions:
contents: read
jobs:
build:
name: Build & Test
runs-on: ubuntu-latest
strategy:
matrix:
go-version: ["1.25.x"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
cache: true
- name: Verify dependencies
run: go mod verify
- name: Build
run: go build ./...
- name: Test (with race detector and coverage)
run: go test -race -timeout 120s -covermode=atomic -coverprofile=coverage.out ./...
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.out
flags: unittests
fail_ci_if_error: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v6
with:
go-version: "1.25.x"
cache: true
- name: Check formatting
run: |
if [ "$(gofmt -l . | wc -l)" -gt 0 ]; then
echo "Following files are not formatted:"
gofmt -l .
exit 1
fi
- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.11.4
- name: Install revive
run: go install github.com/mgechev/revive@v1.10.0
- name: revive
run: revive -config revive.toml ./...
release-dryrun:
name: GoReleaser Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: "1.25.x"
cache: true
- name: GoReleaser check
uses: goreleaser/goreleaser-action@v7
with:
distribution: goreleaser
version: "~> v2"
args: check
- name: GoReleaser snapshot build
uses: goreleaser/goreleaser-action@v7
with:
distribution: goreleaser
version: "~> v2"
args: release --snapshot --clean --skip=publish