12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- name: Go
- on:
- push:
- branches:
- - main
- - 'release/**'
- paths:
- - '**.go'
- - 'go.mod'
- - '.golangci.yml'
- - '.github/workflows/go.yml'
- pull_request:
- paths:
- - '**.go'
- - 'go.mod'
- - '.golangci.yml'
- - '.github/workflows/go.yml'
- env:
- GOPROXY: "https://proxy.golang.org"
- jobs:
- lint:
- name: Lint
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Run golangci-lint
- uses: golangci/golangci-lint-action@v2
- with:
- version: latest
- args: --timeout=30m
- test:
- name: Test
- strategy:
- matrix:
- go-version: [ 1.15.x, 1.16.x, 1.17.x ]
- platform: [ ubuntu-latest, macos-latest, windows-latest ]
- runs-on: ${{ matrix.platform }}
- steps:
- - name: Install Go
- uses: actions/setup-go@v2
- with:
- go-version: ${{ matrix.go-version }}
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Run tests with coverage
- run: go test -v -race -coverprofile=coverage -covermode=atomic ./...
- - name: Upload coverage report to Codecov
- uses: codecov/[email protected]
- with:
- file: ./coverage
- flags: unittests
- - name: Send email on failure
- uses: dawidd6/action-send-mail@v3
- if: ${{ failure() && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
- with:
- server_address: smtp.mailgun.org
- server_port: 465
- username: ${{ secrets.SMTP_USERNAME }}
- password: ${{ secrets.SMTP_PASSWORD }}
- subject: GitHub Actions (${{ github.repository }}) job result
- to: [email protected]
- from: GitHub Actions (${{ github.repository }})
- reply_to: [email protected]
- body: |
- The job "${{ github.job }}" of ${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }} completed with "${{ job.status }}".
- View the job run at: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|