# yaml-language-server: $schema=https://json.schemastore.org/github-action.json
name: 'Setup Go'
description: 'Install Go and override with the custom build'
branding:
  icon: download
  color: purple
runs:
  using: "composite"
  steps:
    - name: Install Go 🚀
      env:
        VERSION: "1.20.3"
      shell: pwsh
      run: |
        # Delete conflicting go versions first
        Remove-Item -Path "$env:RUNNER_TOOL_CACHE/go" -Recurse -Force -ErrorAction Ignore

        # Download source
        $tempZip = "$env:RUNNER_TEMP/source.zip"
        Invoke-WebRequest "https://github.com/jandedobbeleer/go/releases/download/$env:VERSION/go.zip" -OutFile $tempZip

        # Extract to correct location
        Expand-Archive $tempZip -DestinationPath $env:RUNNER_TEMP -Force
        $sourceFolder = Join-Path $env:RUNNER_TOOL_CACHE "go"
        New-Item -ItemType Directory -Path $sourceFolder
        Move-Item "$env:RUNNER_TEMP/go/*" $sourceFolder -Force

        # Set correct permissions on go executables
        chmod a+x "$sourceFolder/bin/go" 2>&1
        Get-ChildItem "$sourceFolder/pkg/tool/linux_amd64" | ForEach-Object {
          chmod a+x $_ 2>&1
        }

        # Add to path
        "$sourceFolder/bin" >> $env:GITHUB_PATH
        "GOROOT=$sourceFolder" >> $env:GITHUB_ENV
        "GOPATH=$sourceFolder" >> $env:GITHUB_ENV
