go.yml 1.2 KB

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