首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用Hydra构建Nix项目时,有可能获得当前的git吗?

在使用Hydra构建Nix项目时,有可能获得当前的git吗?
EN

Stack Overflow用户
提问于 2018-11-03 18:53:32
回答 1查看 521关注 0票数 3

我正在用Nix构建一个Haskell项目,用Hydra服务器完成CI。我想做的一件事是在应用程序本身中嵌入git,这样SHA就可以包含在我们的异常报告中,并作为HTTP响应中的一个标头(检查最新的服务器正在运行)。

在我的dev环境中,很容易使用类似于.git的包从https://hackage.haskell.org/package/gitrev目录中提取SHA,但是看起来Hydra在克隆后没有这个目录(我添加了一些模板Haskell,它证实了doesDirectoryExist <PWD>.git是假的)。

有什么办法从九头蛇那里得到git SHA吗?或者通过包含git目录,这样我可以自己获得SHA,还是其他方式?

九头蛇版本: SNAPSHOT-b11789f39993c614e53da39c29711b63cd266291 (使用nix-2.0.4)

编辑:我还进入了辅助服务器,并确认在进行构建的地方没有.git目录:

代码语言:javascript
复制
[maximiliantagher@ip-10-0-2-46:/tmp]$ sudo ls -a nix-build-mercury-web-backend-0.0.0.drv-0/szjq4m1zklbydw7wrz7dbbxl9ndw0d0f-source
.     app     db          Dockerfile  Gemfile.lock  .ghcid   Makefile           one-off-task  README.md    shell.nix    stack.yaml
..    config  .dir-locals.el  docs        gemset.nix    .gitignore   mercury-web-backend.cabal  package.yaml  release.nix  sql-scripts  templates
API-Spec  data    dist        Gemfile     .ghci     .hlint.yaml  .nix               Rakefile      Setup        src      test
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-07 01:46:22

默认情况下,Hydra将删除.git文件夹,从而阻止您读取git。您可以通过将NIX_PREFETCH_GIT_LEAVE_DOT_GIT设置为"1"来告诉它不要这样做。

如果您使用回购中的release.nix文件构建九头蛇,您可以在文件中的其他--set之后添加--set NIX_PREFETCH_GIT_LEAVE_DOT_GIT "1"https://github.com/NixOS/hydra/blob/1c44de1779d0e315615b072049fb2d2ce333fb32/release.nix#L155-L157

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53134477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档