LoginSignup
0
1

GitHub Actionsでgo mod downloadがgo: no modules specifiedで失敗する

Posted at

はじめに

モノレポで開発をしている中でGitHub Actionsを利用してGoのテストをするのに時間がかかったのでその原因をまとめます

問題

リポジトリを以下の構成で作成しました

┣ .github
  ┣ workflows
     ┣ run.yjobs:
  test:
    name: Run Go and Jest tests
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2
      
    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: 1.20.3 # Replace with your required Go version
version

    - name: cd api
      run: cd ./lt-api && ls

    - name: Download Go modules
      run: go mod downloadml
┣ frot
┣ api
  ┣ go.mod
  ┣ main.go

ここでGitHub Actionsで以下を実行しようとすると失敗しました

run.yml
jobs:
  test:
    name: Run Go and Jest tests
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2
      
    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: 1.20.3 # Replace with your required Go version

version

    - name: cd api
      run: cd ./api && ls

    - name: Download Go modules
      run: go mod download

ここでgo mod downloadで以下のエラーになりました

Run go mod download
go: no modules specified (see 'go help mod download')
Error: Process completed with exit code 1.

cd apiで移動しているのでgo.modがあるはずなのにおかしいと考えていました

解決方法

GitHub Actions内でcdコマンドを使ってディレクトリを変更した場合、その変更はそのステップ内でのみ有効で、次のステップには影響を与えないということが頭から抜けていました

いまのcd apiはまったく次のステップでは意味がないということでした

以下に修正してうまくいきました

run.yml
    - name: Download Go modules
      run: |
        cd api
        go mod download
    ```

# おわりに

よくよく考えればそうだなという感じですが、沼ってしまい気づくのにじかんがかかりま
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1