wip #207
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
# Copyright (c) HashiCorp, Inc. | |
# SPDX-License-Identifier: MPL-2.0 | |
# | |
# This GitHub action runs basic linting checks for Packer. | |
# | |
name: "Go Validate" | |
on: | |
push: | |
branches: | |
- 'main' | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
get-go-version: | |
runs-on: macos-latest | |
outputs: | |
go-version: ${{ steps.get-go-version.outputs.go-version }} | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- name: 'Determine Go version' | |
id: get-go-version | |
run: | | |
echo "Found Go $(cat .go-version)" | |
echo "go-version=$(cat .go-version)" >> $GITHUB_OUTPUT | |
check-mod-tidy: | |
needs: | |
- get-go-version | |
runs-on: ubuntu-latest | |
name: Go Mod Tidy | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- run: go mod tidy | |
check-lint: | |
needs: | |
- get-go-version | |
runs-on: macos-latest | |
name: Lint check | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- uses: golangci/golangci-lint-action@v6 # v3.4.0 | |
with: | |
version: v1.57.0 | |
only-new-issues: true | |
check-fmt: | |
needs: | |
- get-go-version | |
runs-on: ubuntu-latest | |
name: Gofmt check | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- run: | | |
go fmt ./... | |
echo "==> Checking that code complies with go fmt requirements..." | |
git diff --exit-code; if [ $$? -eq 1 ]; then \ | |
echo "Found files that are not fmt'ed."; \ | |
echo "You can use the command: \`go fmt ./...\` to reformat code."; \ | |
exit 1; \ | |
fi | |
check-generate: | |
needs: | |
- get-go-version | |
runs-on: ubuntu-latest | |
name: Generate check | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4.0.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- run: | | |
export PATH=$PATH:$(go env GOPATH)/bin | |
make generate | |
git diff --exit-code || ( echo "Found diffs in generated code" \ | |
&& echo "You can use the command: \`make generate\` to reformat code." \ | |
&& false ) |