AlexNabokikh/tfsort

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI
on:
  push:
    branches:
      - master
  pull_request:

jobs:
  golangci-lint:
    name: golangci-lint
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: "stable"
      - name: Lint
        uses: golangci/golangci-lint-action@v3

  tests:
    name: Tests
    needs: golangci-lint
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - macos-latest
          # - windows-latest - temporarily disabled due to github actions bug
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: "stable"
      - name: Install dependencies
        run: go mod download
      - name: Go Test
        run: make test

  coverage:
    name: Coverage
    needs: tests
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/master'
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: "stable"
      - name: Code Climate Coverage Action
        uses: paambaati/codeclimate-action@v3.2.0
        env:
          CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}}
        with:
          coverageCommand: make coverage
          prefix: ${{ github.event.repository.name }}
          coverageLocations: "${{github.workspace}}/c.out:gocov"