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

     1  #
     2  # This GitHub action runs Packer go tests across
     3  # Windows, Linux, and MacOS runners.
     4  #
     5  
     6  name: "Go Test"
     7  
     8  on:
     9    push:
    10      branches:
    11        - 'main'
    12        - release/**
    13        - feature/**
    14    pull_request:
    15  
    16  env:
    17    PACKER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    18  
    19  permissions:
    20    contents: read
    21  
    22  jobs:
    23    get-go-version:
    24      runs-on: ubuntu-latest
    25      outputs:
    26        go-version: ${{ steps.get-go-version.outputs.go-version }}
    27      steps:
    28        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    29        - name: 'Determine Go version'
    30          id: get-go-version
    31          run: |
    32            echo "Found Go $(cat .go-version)"
    33            echo "go-version=$(cat .go-version)" >> $GITHUB_OUTPUT
    34    linux-go-tests:
    35      needs:
    36        - get-go-version
    37      runs-on: ubuntu-latest
    38      name: Linux go tests
    39      steps:
    40        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    41        - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
    42          with:
    43            go-version: ${{ needs.get-go-version.outputs.go-version }}
    44        - run: TESTARGS="-coverprofile=coverage.txt  -covermode=atomic" make ci
    45    darwin-go-tests:
    46      needs:
    47        - get-go-version
    48      runs-on: macos-latest
    49      name: Darwin go tests
    50      steps:
    51        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    52        - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
    53          with:
    54            go-version: ${{ needs.get-go-version.outputs.go-version }}
    55        - run: go test ./... -coverprofile=coverage.txt  -covermode=atomic
    56    windows-go-tests:
    57      needs:
    58        - get-go-version
    59      runs-on: windows-latest
    60      name: Windows go tests
    61      steps:
    62        - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    63        - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
    64          with:
    65            go-version: ${{ needs.get-go-version.outputs.go-version }}
    66        - run: go test ./... -coverprofile=coverage.txt  -covermode=atomic