# # This GitHub action runs Packer go tests across # Windows, Linux, and MacOS runners. # name: "Go Test" on: push: branches: - 'main' - release/** - feature/** pull_request: env: PACKER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: 'Determine Go version' id: get-go-version run: | echo "Found Go $(cat .go-version)" echo "go-version=$(cat .go-version)" >> $GITHUB_OUTPUT linux-go-tests: needs: - get-go-version runs-on: ubuntu-latest name: Linux go tests steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 with: go-version: ${{ needs.get-go-version.outputs.go-version }} - run: TESTARGS="-coverprofile=coverage.txt -covermode=atomic" make ci darwin-go-tests: needs: - get-go-version runs-on: macos-latest name: Darwin go tests steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 with: go-version: ${{ needs.get-go-version.outputs.go-version }} - run: go test ./... -coverprofile=coverage.txt -covermode=atomic windows-go-tests: needs: - get-go-version runs-on: windows-latest name: Windows go tests steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 with: go-version: ${{ needs.get-go-version.outputs.go-version }} - run: go test ./... -coverprofile=coverage.txt -covermode=atomic