👋

【GitHub Actions】setup-goでgo-versionを指定するときはstringで指定しよう

2023/05/01に公開

対象者

  • GitHub Actionsのymlファイルで、setup-goのgo-versionを指定する方
    • 特にgo-versionを1.20に上げたい方

setup-goについて

まず、setup-goについて
https://github.com/actions/setup-go

This action sets up a go environment for use in actions by:

  • Optionally downloading and caching a version of Go by version and adding to PATH.
  • Registering problem matchers for error output.

要は、GitHub Actions内でgoの環境をつくってくれるやつです。
setup-goを使う上で、go-versionを以下のように指定できます。

  1. 文字列
steps:
  ...
  - uses: actions/setup-go@v4
    with:
      go-version: '1.20'
  ...
  1. 数値
steps:
  ...
  - uses: actions/setup-go@v4
    with:
      go-version: 1.20
  ...

本題

上記のようにgo-versionを文字列でも数値でも指定できるのですが、文字列で指定するようにしましょう

特に、go-versionを1.20に上げたい場合は注意が必要です。
setup-goはJavaScriptで動いており、go-versionに指定された値を読み取る際に、小数点以下の末尾の0は省略されてしまいます。

console.log((1.20).toString())
> '1.2'

つまり、上記の2. 数値は、1.20ではなく 1.2と解釈されてしまうので注意が必要です。
末尾に0がない場合は正常に解釈されますが、このようなケースもあるため、日頃から文字列で指定する習慣をつけておくと良さそうです!

Discussion