name: Build on: push: jobs: run-tests: runs-on: ubuntu-latest env: TEST_RESULTS: "/tmp/test-results" steps: - name: Setup go uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 with: go-version: 1.18 - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0 - run: mkdir -p "$TEST_RESULTS"/go-retryablyhttp - name: restore_cache uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 with: key: go-mod-v1-{{ checksum "go.sum" }} restore-keys: go-mod-v1-{{ checksum "go.sum" }} path: "/go/pkg/mod" - run: go mod download - run: go mod tidy - name: Run go format run: |- files=$(go fmt ./...) if [ -n "$files" ]; then echo "The following file(s) do not conform to go fmt:" echo "$files" exit 1 fi - name: Install gotestsum run: go install gotest.tools/gotestsum@latest - name: Run unit tests run: |- PACKAGE_NAMES=$(go list ./...) # shellcheck disable=SC2086 # can't quote package list gotestsum --junitfile "${TEST_RESULTS}"/go-retryablyhttp/gotestsum-report.xml -- $PACKAGE_NAMES - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: path: "/tmp/test-results" - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: path: "/tmp/test-results" permissions: contents: read