Skip to content

Fix logical error.

Fix logical error. #93

Workflow file for this run

# Copyright (c) HashiCorp, Inc.
name: go-tests
on: [push]
env:
TEST_RESULTS: /tmp/test-results
jobs:
go-tests:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 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
- 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 \
-- \
-coverprofile $TEST_RESULTS/coverage.out \
-race $PACKAGE_NAMES
go tool cover -html=$TEST_RESULTS/coverage.out -o $TEST_RESULTS/coverage.html
# 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 }}