概要
本日はGoアプリケーションの開発でGithubActionsを利用してpush時に自動テストが通るような構成を作成してみました。
その際にちょっとしたミスのせいで依存関係のインストールが上手くいかず、少し手間取ったので共有します。
GithubActions構成(修正前)
まず、修正前の構成は下記です。
name: Golang Test
run-name: ${{ github.actor }} run Github Actions
on: push
jobs:
Test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.20
- name: Install dependencies
run: go mod download
- name: Build
run: go build -v ./...
- name: test
run: go test -v ./...
env:
TOKEN_LIFETIME: "3600"
SECRET_KEY: "testsecretkey"
起こったエラー
起こったエラーは下記で、mod
というコマンドは知りませんというメッセージが出ています。
go: unknown subcommand "mod"
Run 'go help' for usage.
Error: Process completed with exit code 2.
はい?そんなわけないよなと思い一応mod
について調べました。
すると下記の意見を見つけました。
Preliminary module support was added in Go 1.11, so Go 1.10 knows no mod subcommand.
引用元: stackoverflow
簡単に言うと、mod
というサブコマンドはGoのバージョン1.11
からサポートされるようになったみたいです。
しかし、今回の構成ではバージョンは1.20
にしていたはずと思ったので確認しました。
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.20
確認してみるとバージョン指定している部分が文字列になっていないではないか。
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.20 ← 文字列になってない
もしやこれではないかと思い、下記のように修正しました。
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: "1.20"
そして再度実行させてみると、無事に成功させることができました!
GithubActions構成(修正後)
修正後の構成ファイルも一応貼っておきます。
name: Golang Test
run-name: ${{ github.actor }} run Github Actions
on: push
jobs:
Test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: "1.20"
- name: Install dependencies
run: go mod download
- name: Build
run: go build -v ./...
- name: test
run: go test -v ./...
env:
TOKEN_LIFETIME: "3600"
SECRET_KEY: "testsecretkey"
まとめ
いかがだったでしょうか。
ほんの些細なミスに気づけなかったために、少し時間を無駄にしてしまいました。
こういったところにもしっかり気を配れるようになりたいです。
最後まで読んでいただいてありがとうございました!