name: Go on: push: pull_request: branches: - main workflow_dispatch: jobs: build: name: build & test runs-on: ubuntu-latest services: etcd: image: gcr.io/etcd-development/etcd:v3.5.0 ports: - 2379:2379 env: ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379 ETCD_ADVERTISE_CLIENT_URLS: http://0.0.0.0:2379 consul: image: consul:latest ports: - 8500:8500 steps: - uses: actions/checkout@v2 - name: Set up Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: Build run: go build ./... - name: Test run: go test -race -coverprofile=coverage.out -covermode=atomic ./... - name: Upload coverage to Codecov run: bash <(curl -s https://codecov.io/bash) - name: Kratos run: | cd cmd/kratos go build ./... go test ./... - name: HTTP run: | cd cmd/protoc-gen-go-http go build ./... go test ./... - name: Examples run: | cd examples go build ./... go test ./... lint: name: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Lint uses: golangci/golangci-lint-action@v2 with: version: v1.42 skip-go-installation: true skip-pkg-cache: true only-new-issues: true