github: Read Go version from go.mod #3
Workflow file for this run
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: Checks | |
on: | |
push: | |
workflow_dispatch: | |
pull_request: | |
jobs: | |
unit_tests: | |
strategy: | |
matrix: | |
include: | |
- runs-on: ubuntu-latest | |
target: linux_amd64 | |
- runs-on: windows-latest | |
target: windows_amd64 | |
- runs-on: macos-latest | |
target: darwin_amd64 | |
fail-fast: false | |
name: "Unit Tests on ${{ matrix.target }}" | |
runs-on: "${{ matrix.runs-on }}" | |
steps: | |
- name: "Disable git crlf conversions" | |
if: ${{ runner.os == 'Windows' }} | |
# HCL preserves the input line endings when processing a heredoc, | |
# and our tests for heredocs are written to expect the result for | |
# the source code as checked in to the repository, so git's normal | |
# tampering with the line endings would invalidate those tests. | |
run: | | |
git config --global core.autocrlf false | |
- name: "Fetch source code" | |
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 | |
- name: Install Go | |
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version-file: go.mod | |
- name: Go test | |
run: | | |
go test ./... -race | |
fmt_and_vet: | |
name: "fmt and lint" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Fetch source code" | |
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 | |
- name: Install Go | |
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version-file: go.mod | |
- name: "Check vet" | |
run: | | |
go vet ./... | |
- name: "Check fmt" | |
run: | | |
go fmt ./... | |
if [[ -z "$(git status --porcelain)" ]]; then | |
echo "Formatting is consistent with 'go fmt'." | |
else | |
echo "Run 'go fmt ./...' to automatically apply standard Go style to all packages." | |
git status --porcelain | |
exit 1 | |
fi |