Implement the Scan and driver.Value SQL interfaces (#133) #48
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: go-tests | |
on: [push] | |
env: | |
TEST_RESULTS: /tmp/test-results | |
jobs: | |
go-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
go-version: [ 1.15.3, 1.19 ] | |
steps: | |
- name: Setup go | |
uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Checkout code | |
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 | |
- name: Create test directory | |
run: | | |
mkdir -p ${{ env.TEST_RESULTS }} | |
- name: Download go modules | |
run: go mod download | |
- name: Cache / restore go modules | |
uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 | |
with: | |
path: | | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
# Check go fmt output because it does not report non-zero when there are fmt changes | |
- name: Run gofmt | |
run: | | |
go fmt ./... | |
files=$(go fmt ./...) | |
if [ -n "$files" ]; then | |
echo "The following file(s) do not conform to go fmt:" | |
echo "$files" | |
exit 1 | |
fi | |
# Install gotestsum with go get for 1.15.3; otherwise default to go install | |
- name: Install gotestsum | |
run: | | |
GTS="gotest.tools/gotestsum@v1.8.2" | |
# We use the same error message prefix in either failure case, so just define it once here. | |
ERROR="Failed to install $GTS" | |
# First try to 'go install', if that fails try 'go get'... | |
go install "$GTS" || go get "$GTS" || { echo "$ERROR: both 'go install' and 'go get' failed"; exit 1; } | |
# Check that the gotestsum command was actually installed in the path... | |
command -v gotestsum > /dev/null 2>&1 || { echo "$ERROR: gotestsum command not installed"; exit 1; } | |
echo "OK: Command 'gotestsum' installed ($GTS)" | |
- name: Run go tests | |
run: | | |
PACKAGE_NAMES=$(go list ./...) | |
gotestsum --format=short-verbose --junitfile $TEST_RESULTS/gotestsum-report.xml -- $PACKAGE_NAMES | |
# Save coverage report parts | |
- name: Upload and save artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: Test Results | |
path: ${{ env.TEST_RESULTS }} |