transaction index independent & fix #4545
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Go | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4.1.1 | |
with: | |
fetch-depth: 0 | |
- name: Set up Go 1.23 | |
uses: actions/setup-go@v5.0.0 | |
with: | |
go-version: 1.23.x | |
cache: false | |
id: go | |
#- name: Check out code into the Go module directory | |
#uses: actions/checkout@v4.1.0 | |
#- name: Lint code | |
# run: | | |
# gofiles=$(find ./ -name '*.go') && [ -z "$gofiles" ] || unformatted=$(goimports -l $gofiles) && [ -z "$unformatted" ] || (echo >&2 "Go files must be formatted with gofmt. Following files has problem: $unformatted" && true); | |
# diff <(echo -n) <(gofmt -s -d .) | |
# export PATH=$PATH:$(go env GOPATH)/bin # temporary fix. See https://github.com/actions/setup-go/issues/14 | |
# go get -u golang.org/x/lint/golint | |
# golint ./... | |
#- name: Cache | |
# uses: actions/cache@v3.3.2 | |
# with: | |
# path: | | |
# ~/.cache/go-build | |
# ~/go/pkg/mod | |
# key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
# restore-keys: | | |
# ${{ runner.os }}-go- | |
- name: submodule | |
run: git submodule update --init --recursive | |
# Check the format of code | |
- name: Check code formatting using gofmt | |
uses: Jerome1337/gofmt-action@v1.0.5 | |
- name: Static code check | |
run: | | |
export PATH=$PATH:$(go env GOPATH)/bin | |
make -C solution cpu | |
go vet $(go list ./... | grep -v /cvm-runtime/) | |
- name: Build | |
run: make clean && make all | |
- name: CodeCov | |
run: | | |
export LD_LIBRARY_PATH=$PWD:$PWD/plugins:$LD_LIBRARY_PATH | |
GO111MODULE=on && go test $(go list ./... | grep -v /cvm-runtime/) -mod=vendor -coverprofile=coverage.txt -covermode=atomic | |
if [ -f coverage.txt ]; then | |
bash <(curl -s https://codecov.io/bash) | |
fi |