diff --git a/.github/workflows/platform_tests.yml b/.github/workflows/platform_tests.yml new file mode 100644 index 0000000..254f17c --- /dev/null +++ b/.github/workflows/platform_tests.yml @@ -0,0 +1,49 @@ +name: Platform Tests +on: [push, pull_request] + +jobs: + platform_tests: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + go-version: [1.15.x] + os: [ubuntu-latest, windows-latest, macos-latest] + + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + + - name: Get dependencies + run: sudo apt-get update && sudo apt-get install golang gcc libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libx11-dev xorg-dev + if: ${{ runner.os == 'Linux' }} + + #- name: Verify go modules + # run: | + # if [ "$GO111MODULE" == "on" ] + # then + # # For some reason `git diff-index HEAD` does not work properly if the following line is missing. + # git diff + # # check that go mod tidy does not change go.mod/go.sum + # go mod tidy && git diff-index --quiet HEAD -- || ( echo "go.mod/go.sum not up-to-date"; git diff-index HEAD --; false ) + # fi + + - name: Tests + run: go test -tags ci ./... + + - name: Update coverage + run: | + GO111MODULE=off go get github.com/mattn/goveralls + + set -e + go test -tags ci -covermode=atomic -coverprofile=coverage.out ./... + if [ $coverage -lt 69 ]; then echo "Test coverage lowered"; exit 1; fi + if: ${{ runner.os == 'Linux' }} + + - name: Update PR Coverage + uses: shogo82148/actions-goveralls@v1 + with: + path-to-profile: coverage.out + if: ${{ runner.os == 'Linux' && github.event_name == 'push' }} diff --git a/.github/workflows/static_analysis.yml b/.github/workflows/static_analysis.yml new file mode 100644 index 0000000..3e44825 --- /dev/null +++ b/.github/workflows/static_analysis.yml @@ -0,0 +1,37 @@ +name: Static Analysis +on: [push, pull_request] + +jobs: + checks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: '^1.15.x' + + - name: Get dependencies + run: | + sudo apt-get update + sudo apt-get install golang gcc libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libx11-dev xorg-dev + GO111MODULE=off go get golang.org/x/tools/cmd/goimports + GO111MODULE=off go get github.com/fzipp/gocyclo/cmd/gocyclo + GO111MODULE=off go get golang.org/x/lint/golint + GO111MODULE=off go get honnef.co/go/tools/cmd/staticcheck + - name: Cleanup repository + run: rm -rf vendor/ + + - name: Vet + run: go vet -tags ci ./... + + - name: Goimports + run: test -z $(goimports -e -d . | tee /dev/stderr) + + - name: Gocyclo + run: gocyclo -over 50 . + + - name: Golint + run: golint -set_exit_status $(go list -tags ci ./...) + + - name: Staticcheck + run: CGO_ENABLED=1 staticcheck -f stylish ./...