Skip to content

Testing

Testing #745

Workflow file for this run

name: Testing
on:
push:
branches:
- master
pull_request:
schedule:
- cron: "5 1 * * *" # Run nightly
workflow_dispatch:
jobs:
gofmt:
name: go fmt (Go ${{ matrix.go }})
runs-on: ubuntu-22.04
strategy:
matrix:
go: [ '1.20', '1.19' ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Run go fmt
if: runner.os != 'Windows'
run: diff -u <(echo -n) <(gofmt -d -s .)
govet:
name: go vet (Go ${{ matrix.go }})
runs-on: ubuntu-22.04
strategy:
matrix:
go: [ '1.20', '1.19' ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Run go vet
run: make vet
staticcheck:
name: staticcheck (Go ${{ matrix.go }})
runs-on: ubuntu-22.04
strategy:
matrix:
go: [ '1.20', '1.19' ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Run staticcheck
uses: dominikh/[email protected]
with:
version: "2023.1.3"
install-go: false
cache-key: ${{ matrix.go }}
unittesting:
name: unit testing (Go ${{ matrix.go }})
runs-on: ubuntu-22.04
strategy:
matrix:
go: [ '1.20', '1.19' ]
# See https://docs.github.com/en/actions/using-containerized-services/creating-redis-service-containers
services:
redis:
# Docker Hub image
image: redis
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps port 6379 on service container to the host
- 6379:6379
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Run Unit tests.
run: make test