github.com/hashicorp/packer@v1.14.3/.github/workflows/go-validate.yml (about)

     1  #
     2  # This GitHub action runs basic linting checks for Packer.
     3  #
     4  
     5  name: "Go Validate"
     6  
     7  on:
     8    push:
     9      branches:
    10        - 'main'
    11        - release/**
    12        - feature/**
    13    pull_request:
    14  
    15  permissions:
    16    contents: read
    17  
    18  jobs:
    19    get-go-version:
    20      runs-on: ubuntu-latest
    21      outputs:
    22        go-version: ${{ steps.get-go-version.outputs.go-version }}
    23      steps:
    24        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    25        - name: 'Determine Go version'
    26          id: get-go-version
    27          run: |
    28            echo "Found Go $(cat .go-version)"
    29            echo "go-version=$(cat .go-version)" >> $GITHUB_OUTPUT
    30    check-mod-tidy:
    31      needs:
    32        - get-go-version
    33      runs-on: ubuntu-latest
    34      name: Go Mod Tidy
    35      steps:
    36        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    37        - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
    38          with:
    39            go-version: ${{ needs.get-go-version.outputs.go-version }}
    40        - run: go mod tidy
    41    check-lint:
    42      needs:
    43        - get-go-version
    44      runs-on: ubuntu-latest
    45      name: Lint
    46      steps:
    47        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    48          with:
    49            fetch-depth: 0
    50        - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
    51          with:
    52            go-version: ${{ needs.get-go-version.outputs.go-version }}
    53        - run: echo "$GITHUB_SHA"
    54        - run: git fetch --all
    55        - run: echo $(git merge-base origin/main $GITHUB_SHA)
    56        - run: make ci-lint
    57    check-fmt:
    58      needs:
    59        - get-go-version
    60      runs-on: ubuntu-latest
    61      name: Fmt check
    62      steps:
    63        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    64        - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
    65          with:
    66            go-version: ${{ needs.get-go-version.outputs.go-version }}
    67        - run: make fmt-check
    68    check-generate:
    69      needs:
    70        - get-go-version
    71      runs-on: ubuntu-latest
    72      name: Generate check
    73      steps:
    74        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    75        - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
    76          with:
    77            go-version: ${{ needs.get-go-version.outputs.go-version }}
    78        - run: make generate-check