Update .gitignore #35
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
env: | |
GO_VERSION: '1.21' | |
jobs: | |
# Check if there is any dirty change for go mod tidy | |
go-mod: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
# https://github.com/actions/setup-go#supported-version-syntax | |
# ex: | |
# - 1.18beta1 -> 1.18.0-beta.1 | |
# - 1.18rc1 -> 1.18.0-rc.1 | |
go-version: ${{ env.GO_VERSION }} | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Check go mod | |
run: | | |
go mod tidy | |
git diff --exit-code go.mod | |
git diff --exit-code go.sum | |
# We already run the current golangci-lint in tests, but here we test | |
# our GitHub action with the latest stable golangci-lint. | |
golangci-lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
# https://github.com/actions/setup-go#supported-version-syntax | |
# ex: | |
# - 1.18beta1 -> 1.18.0-beta.1 | |
# - 1.18rc1 -> 1.18.0-rc.1 | |
go-version: ${{ env.GO_VERSION }} | |
- name: lint | |
uses: golangci/golangci-lint-action@v3.7.0 | |
with: | |
version: latest | |
# skip cache because of flaky behaviors | |
skip-build-cache: true | |
skip-pkg-cache: true | |
tests-on-windows: | |
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
# https://github.com/actions/setup-go#supported-version-syntax | |
# ex: | |
# - 1.18beta1 -> 1.18.0-beta.1 | |
# - 1.18rc1 -> 1.18.0-rc.1 | |
go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI | |
- name: Run tests | |
run: make.exe test | |
tests-on-macos: | |
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
# https://github.com/actions/setup-go#supported-version-syntax | |
# ex: | |
# - 1.18beta1 -> 1.18.0-beta.1 | |
# - 1.18rc1 -> 1.18.0-rc.1 | |
go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI | |
- name: Run tests | |
run: make test | |
tests-on-unix: | |
needs: golangci-lint # run after golangci-lint action to not produce duplicated errors | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
golang: | |
- '1.21' | |
- '1.22' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
# https://github.com/actions/setup-go#supported-version-syntax | |
# ex: | |
# - 1.18beta1 -> 1.18.0-beta.1 | |
# - 1.18rc1 -> 1.18.0-rc.1 | |
go-version: ${{ matrix.golang }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go-${{ matrix.golang }}- | |
- name: Run tests | |
run: make test |