feat: add support for dynamic directpath i/o #9
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: ubuntu-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@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- run: go mod tidy | |
check-lint: | |
needs: | |
- get-go-version | |
runs-on: ubuntu-latest | |
name: Lint check | |
steps: | |
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- uses: golangci/golangci-lint-action@3cfe3a4abbb849e10058ce4af15d205b6da42804 # v4.0.0 | |
with: | |
version: v1.54.2 | |
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@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.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@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version: ${{ needs.get-go-version.outputs.go-version }} | |
- run: | | |
export PATH=$PATH:$(go env GOPATH)/bin | |
make generate | |
uncommitted="$(git status -s)" | |
if [[ -z "$uncommitted" ]]; then | |
echo "OK" | |
else | |
echo "Docs have been updated, but the compiled docs have not been committed." | |
echo "Run 'make generate', and commit the result to resolve this error." | |
echo "Generated but uncommitted files:" | |
echo "$uncommitted" | |
exit 1 | |
fi |