ci: refine Go version handling in CI workflows #56
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: Run Testing | |
on: push | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "^1" | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup golangci-lint | |
uses: golangci/golangci-lint-action@v3 | |
with: | |
version: latest | |
args: --verbose | |
# Label of the container job | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
go: [1.18, 1.19, "1.20", 1.21] | |
include: | |
- os: ubuntu-latest | |
go-build: ~/.cache/go-build | |
name: ${{ matrix.os }} @ Go ${{ matrix.go }} | |
runs-on: ${{ matrix.os }} | |
env: | |
GO111MODULE: on | |
GOPROXY: https://proxy.golang.org | |
steps: | |
- name: Start Redis | |
uses: supercharge/[email protected] | |
with: | |
redis-version: 6 | |
# Running Test | |
- name: Running Test | |
run: | | |
sudo apt-get install -y redis-tools | |
docker ps -a | |
redis-cli -h 127.0.0.1 -p 6379 ping | |
redis-cli -h 127.0.0.1 -p 6379 cluster nodes | |
- name: Set up Go ${{ matrix.go }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
${{ matrix.go-build }} | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Run Tests | |
run: | | |
go test -v -covermode=atomic -coverprofile=coverage.out | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
flags: ${{ matrix.os }},go-${{ matrix.go }} |