name: "Setup Golang environment" description: "A reusable workflow that's used to set up the Go environment and cache." inputs: go-version: description: "The version of Golang to set up" required: true runs: using: "composite" steps: - name: setup go ${{ inputs.go-version }} uses: actions/setup-go@v3 with: go-version: '${{ inputs.go-version }}' - name: go cache uses: actions/cache@v3 with: # In order: # * Module download cache # * Build cache (Linux) # * Build cache (Mac) # * Build cache (Windows) path: | ~/go/pkg/mod ~/.cache/go-build ~/Library/Caches/go-build ~\AppData\Local\go-build key: ${{ runner.os }}-go-${{ inputs.go-version }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{ inputs.go-version }}-${{ github.job }}- ${{ runner.os }}-go-${{ inputs.go-version }}- - name: set GOPATH shell: bash run: | echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV