.github/workflows/ci.yml
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 }}