.github/workflows/tests.yml
name: tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.17
- name: Download dependencies
run: go mod download
- name: Generate code from openapi
run: |
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.9.1
oapi-codegen -generate types -o api/server/types.gen.go -package server api/openapi.yaml
oapi-codegen -generate chi-server -o api/server/server.gen.go -package server api/openapi.yaml
- name: Generate dependencies with wire
run: |
go install github.com/google/wire/cmd/wire@v0.5.0
wire
- uses: brokeyourbike/go-mockery-action@v0.1
with:
mockery-version: '2.9.4'
- name: Generate mocks using mockery
run: mockery --all
- name: Build
run: go build -v ./...
- name: Test
run: MallocNanoZone=0 go test -race -covermode=atomic -shuffle=on -coverprofile=coverage.out -v ./...
- uses: paambaati/codeclimate-action@v4
env:
CC_TEST_REPORTER_ID: ${{ secrets.CODECLIMATE_TOKEN }}
with:
coverageCommand: ''
prefix: 'github.com/brokeyourbike/lets-go-chat'
coverageLocations: ./coverage.out:gocov