草庐IT

go - 本地构建成功,而 CircleCI 构建失败

coder 2024-07-08 原文

我正在尝试对导入进行一些试验,现在卡在了 CircleCI 中简单导入包失败的站点 ,但它可以在本地成功构建。任何人都可以分享错误或我做错了什么不让代码在 CircleCI 中构建吗?

repo 结构:

    - project
    --- main.go
    --- graphic
    ----- graphics.go

main.go 导入定义:

    package main

    import (
        "bufio"
        "flag"
        "fmt"
        "io/ioutil"
        "log"
        "os"
        "strings"

        graphic "../project/graphic"
    )

graphics.go导入定义:

    package graphic

    import (
        "fmt"
        "io/ioutil"
        "log"

        "github.com/fogleman/gg"
    )

CircleCI config.yml:

version: 2
jobs:
  build:
    docker:
      - image: circleci/golang:1.9

    working_directory: /go/src/github.com/<my-account>/project
    steps:
      - checkout

      # specify any bash command here prefixed with `run: `
      # - run: go get -v -t -d ./...

      - run: 
          name: run filesystem path configuration
          command: |
            pwd
            pwd -P
            echo $GOROOT
            echo $GOPATH
            export GOBIN=$GOPATH/bin
            echo $GOBIN
            export PATH=$PATH:$GOBIN
            ls -latr $GOROOT
            ls -latr $GOPATH
            ls -latr $GOBIN
            go env
      - run:
          name: run dependecy managament
          command: |
            go get -v -u github.com/golang/dep/cmd/dep
            go get -v -u github.com/fogleman/gg
            go get -v -u github.com/aws/aws-sdk-go/aws
            go get -v -u github.com/aws/aws-sdk-go/aws/session
            go get -v -u github.com/aws/aws-sdk-go/service/cloudwatch
      - run:
          name: run documentation
          command: |
            godoc -v -index -timestamps main
      - run:
          name: run tests
          command: |
            go vet -v ./...
      - run:
          name: run build and deploy
          command: |
            dep init
            mkdir build
            dep ensure
            go build -v -o build/main.exe main.go
      - run:
          name: run qa
          command: go test -v main.go

      - store_artifacts:
          path: ./build

失败错误信息:

    #!/bin/bash -eo pipefail
    dep init
    mkdir build
    dep ensure
    go build -v -o build/main.exe main.go
      Using ^1.3.0 as constraint for direct dep github.com/fogleman/gg
      Locking in v1.3.0 (0403632) for direct dep github.com/fogleman/gg
      Locking in master (cff245a) for transitive dep golang.org/x/image
      Using ^1.23.3 as constraint for direct dep github.com/aws/aws-sdk-go
      Locking in v1.23.3 (fbdf1bd) for direct dep github.com/aws/aws-sdk-go
      Locking in master (e2365df) for transitive dep github.com/golang/freetype
      Locking in  (c2b33e84) for transitive dep github.com/jmespath/go-jmespath
    graphic/graphics.go:8:2: cannot find package "_/go/src/github.com/<my-account>/project/vendor/github.com/fogleman/gg" in any of:
        /usr/local/go/src/_/go/src/github.com/<my-account>/project/vendor/github.com/fogleman/gg (from $GOROOT)
        /go/src/_/go/src/github.com/<my-account>/project/vendor/github.com/fogleman/gg (from $GOPATH)
    Exited with code 1

最佳答案

我认为如果您使用包管理器(如 DEP 或其他),您的情况将会得到解决。

关于go - 本地构建成功,而 CircleCI 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57545628/

有关go - 本地构建成功,而 CircleCI 构建失败的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby - 在 Ruby 中构建长字符串的简洁方法 - 2

    在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo

  5. ruby-on-rails - 创建 ruby​​ 数据库时惰性符号绑定(bind)失败 - 2

    我正在尝试在Rails上安装ruby​​,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf

  6. ruby - 正则表达式在哪个位置失败? - 2

    我需要一个非常简单的字符串验证器来显示第一个符号与所需格式不对应的位置。我想使用正则表达式,但在这种情况下,我必须找到与表达式相对应的字符串停止的位置,但我找不到可以做到这一点的方法。(这一定是一种相当简单的方法……也许没有?)例如,如果我有正则表达式:/^Q+E+R+$/带字符串:"QQQQEEE2ER"期望的结果应该是7 最佳答案 一个想法:你可以做的是标记你的模式并用可选的嵌套捕获组编写它:^(Q+(E+(R+($)?)?)?)?然后你只需要计算你获得的捕获组的数量就可以知道正则表达式引擎在模式中停止的位置,你可以确定匹配结束

  7. ruby - 使用 rbenv 和 ruby​​-build 构建 ruby​​ 失败,出现 undefined symbol : SSLv2_method - 2

    我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby​​2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby​​-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm

  8. ruby-on-rails - Ruby 的 'open_uri' 是否在读取或失败后可靠地关闭套接字? - 2

    一段时间以来,我一直在使用open_uri下拉ftp路径作为数据源,但突然发现我几乎连续不断地收到“530抱歉,允许的最大客户端数(95)已经连接。”我不确定我的代码是否有问题,或者是否是其他人在访问服务器,不幸的是,我无法真正确定谁有问题。本质上,我正在读取FTPURI:defself.read_uri(uri)beginuri=open(uri).readuri=="Error"?nil:urirescueOpenURI::HTTPErrornilendend我猜我需要在这里添加一些额外的错误处理代码...我想确保我采取一切预防措施来关闭所有连接,这样我的连接就不是问题所在,但是我

  9. ruby-on-rails - Ruby 流量控制 : throw an exception, 返回 nil 还是让它失败? - 2

    我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id

  10. ruby - gem 规范失败 - 2

    我正在为毕业设计开发GEM,TravisCI构建不断失败。这是我在Travis上的链接:https://travis-ci.org/ricardobond/perpetuus/builds/8709218构建错误是:$bundleexecrakerakeaborted!Don'tknowhowtobuildtask'default'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in`eval'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_

随机推荐