簡體   English   中英

Github 動作 go 測試找不到 package 錯誤。 我怎樣才能解決這個問題?

[英]Github actions go test cannot find package error. How can I fix this?

我有一個簡單的 go package,但是在 Github Actions 中進行測試期間,它失敗並出現以下錯誤:

##[error]keywords.go:8:2: cannot find package "github.com/securisec/go-keywords/languages" in any of: .

當我在本地運行測試時(我使用的是 go mod),所有測試都運行良好。

對於 Github 操作,我嘗試將GO111MODULE設置為onoff ,但仍然出現相同的錯誤。

可以在此處觀察到錯誤。 我的測試工作流程是:

name: tests

on:
  - push
  - pull_request

jobs:
  test:
    name: Test package
    strategy:
      max-parallel: 3
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
        go:
          - "1.11"
          - "1.13"
          - "1.14"
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        env:
          GOPATH: ${{ runner.workspace }}
          GO111MODULE: "on"

      - name: Go setup
        uses: actions/setup-go@v1.0.0
        with:
          go-version: ${{matrix.go}}
        env:
          GOPATH: ${{ runner.workspace }}
          GO111MODULE: "on"
      - name: Run test
        env:
          GOPATH: ${{ runner.workspace }}
          GO111MODULE: "on"
        run: |
          go get -u github.com/grokify/html-strip-tags-go
          go test ./...
      - if: failure()
        run: ls -R

Go 模組文件:

module github.com/securisec/go-keywords

go 1.14

require github.com/grokify/html-strip-tags-go v0.0.0-20200322061010-ea0c1cf2f119

我該如何解決這個錯誤?

因此,如果您查看完整的錯誤消息:

##[error]keywords.go:8:2: cannot find package "github.com/securisec/go-keywords/languages" in any of:
    /opt/hostedtoolcache/go/1.10.0/x64/src/github.com/securisec/go-keywords/languages (from $GOROOT)
    /home/runner/work/go-keywords/src/github.com/securisec/go-keywords/languages (from $GOPATH)
##[error]Process completed with exit code 1.

您會注意到您正在嘗試在 Go 1.10 中運行代碼。 Go 模塊是在 Go 1.11 中引入的,因此它總是會抱怨應用程序沒有安裝依賴項。

然后,如果您查看 Go 設置日志:

Go setup
    GO111MODULE: on
##[warning]Unexpected input 'go-version', valid inputs are ['version']
Run actions/setup-go@v1.0.0
  with:
    go-version: 1.11
    version: 1.10
  env:
    GOPATH: /home/runner/work/go-keywords
    GO111MODULE: on
/bin/tar xzC /home/runner/work/_temp/0ce9b622-d798-400e-b86a-42d36359ad78 -f /home/runner/work/_temp/80f228cc-4b21-427f-b111-d9f296ed4990

您會看到安裝程序發出警告並默認為您安裝 go 1.10。

那是因為您已針對不了解 go-version 標志的特定版本 v1.0.0。 (我認為它是在 v1.1.0 中添加的)

解決方案

uses: actions/setup-go@v1.0.0更改為uses: actions/setup-go@v1以獲取最新的 v1 版本。

或者甚至更好地使用 v2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM