diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 73371ac36..9a2ebaa6b 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -9,24 +9,106 @@ on: jobs: build: - name: Build - runs-on: ubuntu-latest + 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: 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: Set up Go 1.13 + - 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: 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: 1.13 + go-version: ${{ matrix.go_version }} id: go + - 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: Set up Env run: | echo "::set-env name=GOPATH::$(go env GOPATH)" echo "::add-path::$(go env GOPATH)/bin" - + - 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 ./... @@ -34,10 +116,6 @@ jobs: curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh dep ensure fi - sudo rm /usr/local/bin/docker-compose - curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > docker-compose - chmod +x docker-compose - sudo mv docker-compose /usr/local/bin 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 @@ -46,10 +124,6 @@ jobs: go get -u github.com/golang/protobuf/protoc-gen-go go get -u github.com/gogo/protobuf/protoc-gen-gofast - - name: Build - run: go build ./... - - name: Test - run: go test ./... - name: Tool run: | go install ./...