ivanilves/travelgrunt

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI

env:
  GO_VERSION: 1.22

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: ${{ env.GO_VERSION }}

    - name: Build
      run: make build

  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: ${{ env.GO_VERSION }}

    - name: Test
      run: make test

  semantic_commit_check:
    runs-on: ubuntu-latest
    if: github.event_name == 'pull_request'
    steps:
    - uses: actions/checkout@v3

    - name: Get "base" and "PR" Git branches
      run: git remote update && git checkout ${GITHUB_BASE_REF} && git checkout ${GITHUB_HEAD_REF}

    - name: Check commit message semantics
      run: make semantic-commit-check RANGE=${GITHUB_BASE_REF}..${GITHUB_HEAD_REF}

  static_analysis:
    runs-on: ubuntu-latest
    if: github.event_name == 'pull_request'
    steps:
    - uses: actions/checkout@v3

    - name: staticcheck
      uses: dominikh/staticcheck-action@v1.3.1

    - name: golangci-lint
      uses: golangci/golangci-lint-action@v3

    - name: golint
      uses: Jerome1337/golint-action@v1.0.3

  codecov:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: ${{ env.GO_VERSION }}

    - name: Run coverage
      run: make coverage

    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v3
      env:
        CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}