go.yml 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. name: Go
  2. on:
  3. push:
  4. branches: [master]
  5. pull_request:
  6. env:
  7. GOPROXY: "https://proxy.golang.org"
  8. jobs:
  9. lint:
  10. name: Lint
  11. runs-on: ubuntu-latest
  12. steps:
  13. - uses: actions/checkout@v2
  14. - name: Run golangci-lint
  15. uses: actions-contrib/golangci-lint@v1
  16. test:
  17. name: Test
  18. strategy:
  19. matrix:
  20. go-version: [1.13.x, 1.14.x]
  21. platform: [ubuntu-latest, macos-latest, windows-latest]
  22. runs-on: ${{ matrix.platform }}
  23. steps:
  24. - name: Install Go
  25. uses: actions/setup-go@v1
  26. with:
  27. go-version: ${{ matrix.go-version }}
  28. - name: Checkout code
  29. uses: actions/checkout@v2
  30. - name: Run unit tests
  31. run: go test -v -race -coverprofile=coverage -covermode=atomic ./...
  32. - name: Upload coverage report to Codecov
  33. uses: codecov/[email protected]
  34. with:
  35. file: ./coverage
  36. flags: unittests
  37. - name: Cache downloaded modules
  38. uses: actions/cache@v1
  39. with:
  40. path: ~/go/pkg/mod
  41. key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
  42. restore-keys: |
  43. ${{ runner.os }}-go-