草庐IT

after_build

全部标签

git - 如何正确获取 go build 的返回码?

我想将gobuild添加到预提交Hook中,以免发布无法构建的代码。如果构建成功,我想继续提交,否则失败并拒绝提交。我该如何正确地做到这一点? 最佳答案 任何pre-commitHook都将由gitbash执行(即使在Windows上),因此您可以通过常规bash脚本编写脚本。参见GitHooksExitingnon-zerofromthishookabortsthecommit,althoughyoucanbypassitwithgitcommit--no-verify.#!/bin/bashset-egobuild(来自“Che

go - 如何确保 go build 使用 vendor 目录中的所有依赖项

我在vendor/目录中使用了godep和vendored我所有的依赖项。Gobuild也工作正常。但是,我如何确定我的所有依赖项都已出售?有什么命令可以确保这一点吗? 最佳答案 我的CI服务(Travis是我使用的服务)让我知道。因为如果deps不可用,我的测试构建将失败。无论如何,您都应该使用CI服务,然后您就可以免费获得该好处。 关于go-如何确保gobuild使用vendor目录中的所有依赖项,我们在StackOverflow上找到一个类似的问题: h

go - go build/run 执行时出错

我创建了一个简单的go脚本:https://gist.github.com/kbl/86ed3b2112eb80522949f0ce574a04e3它从互联网上获取一些xml,然后启动Xgoroutines。X取决于文件内容。在我的例子中,它是1700个协程。我的第一次执行结束于:$gorunmathandel1.go2018/01/2714:19:37Gethttps://www.boardgamegeek.com/xmlapi/boardgame/162152?pricehistory=1&stats=1:dialtcp72.233.16.130:443:socket:tooman

testing - 去测试 : clean up after panic

假设我为我的测试设置了一个带有数据库的Docker容器,我在testing.TestMain中这样做了因为我希望这一次在全局范围内完成。我在此testing.Main()中编写了一个defer语句来执行清理(即删除DB容器)。现在,假设出了点问题,我的测试崩溃了。Thisissue告诉我我无法编写自定义recover代码来确保删除容器。这是真的:testing.M.Run()执行它自己的recover()调用,看起来没有办法覆盖它的行为。问题是:我应该怎么做才能确保无论如何执行我的清理代码? 最佳答案 如您链接到的问题中所述:The

docker - 通过 'revel build <testapp>' 的 run.sh 二进制文件未在 docker 容器内运行

因为我最近开始使用revel框架来构建goweb应用程序。我创建了一个测试应用程序(orpat),将其编译为“revelbuildorpatprod”并更改了confPORT->8084以发布该应用程序。生成的文件是-orpat(可执行文件11MB)运行.sh运行.bat源/文件夹它从其他位置在我的本地系统上执行良好(当然它安装了golang和revel)。http://localhost:8084我将构建文件复制到未安装golang的虚拟机中,它也在那里执行'./run.sh':在终端中运行此cmd足以使应用联机。下面是dockerfile->FROMgolang:1.10.4-al

postgresql - Go语言,Postgres : cannot get oid after Scan

如果表accounts我有2列:oid和balance在接下来的代码中,我尝试提取oid,然后提取balance://variable`id`comesfromananotherpartsqlstr:=`SELECT*`+`FROMaccounts`+`WHEREoid=`+id+`;`q,err:=db.Query(sqlstr)iferr!=nil{fmt.Println("Error:GetAccount\n",err)returnAccount{},err}deferq.Close()var_idstringvarbalfloat64q.Next()q.Scan(&_id)fm

git - 在 dockerfile 中的 go build 命令中注入(inject)或插入多个 ENV 变量

我正在使用dockerfile来构建go代码,并且我试图在-ldflags选项中传递3个选项。其中两个标志来自ENV变量,我必须通过字符串插值或连接将它们注入(inject)-ldflags内容,但我不知道如何。目标是在main.go的两个变量中注入(inject)gitrevisionhash和当前时间戳可以通过creatingafilefromdockerfile来完成使用“echo”命令,但我想确保使用简单的变量插值/连接是不可能的ENVGIT_REVISION$(gitrev-parse--shortHEAD)ENVCOMPILATION_TIMESTAMP$(date+%Y%

docker - 为什么 "go build"对我的 Docker 项目失败?

我有一个npm二进制文件,我想打包到Docker容器中。我有这样的配置:#DockerimagefortheMongoStitchcommandFROMgolang:alpine#DoasystemupdateRUNapkupdateRUNapkaddgit#DeclarebasedirWORKDIR/root#TheconsolebinaryforMongoStitchRUNgitclonehttps://github.com/10gen/stitch-cli.gitWORKDIR/root/stitch-cliRUNgobuildCMD["/bin/sh"]我收到这个错误:main

docker - 来自文件的 Google Cloud Build Docker build-arg

我在使用GoogleCloudBuild时遇到问题。我无法通过cloudbuild.yaml将key传递给docker谷歌构建文件.yaml:-name:'gcr.io/cloud-builders/gcloud'args:-kms-decrypt---ciphertext-file=A.enc---plaintext-file=/root/.ssh/id_rsa---location=global---keyring=keyringxxx---key=keyxxxvolumes:-name:'ssh'path:/root/.ssh-name:'gcr.io/cloud-builder

docker - 去构建 : build output "api" already exists and is a directory

我正在尝试使用CompileDaemon热重载使用Docker的go项目。我的文件夹结构如下所示my-api-server-main.go-Dockerfile-docker-compose.yml-Makefile这是我得到的错误:gobuildgithub.com/firstApi/test-platform/lib/my-api/server:构建输出“server”已经存在并且是一个目录这是我的dockerfile的样子FROMgolang:1.12-stretchENVGO111MODULE=onWORKDIR/go/srcCOPYgo.mod.COPYgo.sum.RUNg