brokeyourbike/lets-go-chat

View on GitHub
.github/workflows/tests.yml

Summary

Maintainability
Test Coverage
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