name: Go on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: name: Build on ${{ matrix.os }} - Go${{ matrix.go_version }} runs-on: ${{ matrix.os }} strategy: matrix: go_version: - 1.13 os: - ubuntu-latest steps: - name: Set up Go ${{ matrix.go_version }} uses: actions/setup-go@v1 with: go-version: ${{ matrix.go_version }} id: go - name: Set up Env run: | echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV echo "$(go env GOPATH)/bin" >> $GITHUB_PATH - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Cache dependencies uses: actions/cache@v2 with: # Cache path: ~/go/pkg/mod # Cache key key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} # An ordered list of keys to use for restoring the cache if no cache hit occurred for key restore-keys: | ${{ runner.os }}-go- - name: Get dependencies run: | go get -v -t -d ./... if [ -f Gopkg.toml ]; then curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh dep ensure fi - name: Build run: go build ./... - name: Golangci run: | curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.33.0 golangci-lint run --out-format=github-actions - name: Test run: go test ./... -coverprofile=coverage.txt -covermode=atomic - name: Coverage run: bash <(curl -s https://codecov.io/bash) scaffold: name: Scaffold Test on ${{ matrix.os }} - Go${{ matrix.go_version }} runs-on: ${{ matrix.os }} strategy: matrix: go_version: - 1.13 os: - ubuntu-latest steps: - name: Set up Go ${{ matrix.go_version }} uses: actions/setup-go@v1 with: go-version: ${{ matrix.go_version }} id: go - name: Set up Env run: | echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV echo "$(go env GOPATH)/bin" >> $GITHUB_PATH - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Cache dependencies uses: actions/cache@v2 with: # Cache path: ~/go/pkg/mod # Cache key key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} # An ordered list of keys to use for restoring the cache if no cache hit occurred for key restore-keys: | ${{ runner.os }}-go- - name: Get dependencies run: | go get -v -t -d ./... if [ -f Gopkg.toml ]; then curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh dep ensure fi wget https://github.com/google/protobuf/releases/download/v3.11.4/protoc-3.11.4-linux-x86_64.zip unzip protoc-3.11.4-linux-x86_64.zip chmod +x bin/protoc sudo mv bin/protoc /usr/local/bin sudo mv include /usr/local/bin go get -u github.com/golang/protobuf/protoc-gen-go go get -u github.com/gogo/protobuf/protoc-gen-gofast - name: Tool run: | go install ./... mkdir -p $GOPATH/src cp -R ../kratos $GOPATH/src cd $GOPATH/src kratos new kratos-demo cd kratos-demo go build ./...