Skip to content

github: Read Go version from go.mod #6

github: Read Go version from go.mod

github: Read Go version from go.mod #6

Workflow file for this run

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