name: Go on: push: branches: - main pull_request: branches: - main workflow_dispatch: jobs: build: strategy: matrix: go: [1.18, 1.19, 1.20.x] 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:1.12.3 ports: - 8500:8500 nacos: image: nacos/nacos-server:v2.1.0 env: MODE: standalone ports: - "8848:8848" - "9848:9848" polaris: image: polarismesh/polaris-standalone:latest ports: - 8090:8090 - 8091:8091 - 8093:8093 steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4.0.1 with: go-version: ${{ matrix.go }} - name: Setup Environment run: | echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV echo "$(go env GOPATH)/bin" >> $GITHUB_PATH - name: Module cache uses: actions/cache@v3 with: path: | ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go - name: Build run: go build ./... - name: Test run: make test-coverage - 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 ./...