summaryrefslogtreecommitdiffstats
path: root/.github/workflows/go.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/go.yml')
-rw-r--r--.github/workflows/go.yml108
1 files changed, 108 insertions, 0 deletions
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
new file mode 100644
index 0000000..de15521
--- /dev/null
+++ b/.github/workflows/go.yml
@@ -0,0 +1,108 @@
+name: Go
+on:
+ push:
+ branches:
+ - master
+ pull_request: {}
+
+jobs:
+ build-test:
+
+ strategy:
+ matrix:
+ os: [ macos-latest, ubuntu-latest ]
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: actions/setup-go@v2
+ with:
+ go-version: 1.18.x
+
+ - run: go build -gcflags="-m" ./...
+
+ - run: go test -v -race ./...
+
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: actions/setup-go@v2
+ with:
+ go-version: 1.18.x
+
+ - uses: dominikh/staticcheck-action@29e9b80fb8de0521ba4ed3fdf68fed5bbe82a2d2 # v1.1.0
+ with:
+ install-go: false
+
+ vet:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: actions/setup-go@v2
+ with:
+ go-version: 1.18.x
+
+ - run: go vet ./...
+
+ fmt:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: actions/setup-go@v2
+ with:
+ go-version: 1.18.x
+
+ - name: Run gofmt -d .
+ run: |
+ fmtvar="$(gofmt -d .)"
+ echo "$fmtvar"
+ test -z "$fmtvar"
+
+ modtidy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: actions/setup-go@v2
+ with:
+ go-version: 1.18.x
+
+ - name: Run go mod tidy
+ run: |
+ go mod tidy
+ gitdiff="$(git diff -U0)"
+ echo "$gitdiff"
+ test -z "$gitdiff"
+
+ vendor-diff:
+ if: github.event_name == 'pull_request'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/setup-go@v3
+ with:
+ go-version: ^1.18
+
+ - name: Checkout base commit
+ uses: actions/checkout@v3
+ with:
+ path: a
+ ref: ${{ github.base_ref }}
+ - name: Download dependencies of base commit
+ run: go mod vendor
+ working-directory: a
+
+ - name: Checkout PR
+ uses: actions/checkout@v3
+ with:
+ path: b
+ - name: Download dependencies of PR
+ run: go mod vendor
+ working-directory: b
+
+ - name: Diff of dependencies
+ run: diff -ur --color=always a/vendor b/vendor || true