我正在用 Nix 构建一个 Haskell 项目,CI 由 Hydra 服务器完成。我想做的一件事是将 git SHA 嵌入应用程序本身,这样 SHA 可以包含在我们的异常报告中并作为 HTTP 响应中的标头(以检查最新的服务器是否正在运行)。
使用https://hackage.haskell.org/package/gitrev.git
之类的包从我的开发环境中的目录中提取 SHA 很容易,但克隆后 Hydra 似乎没有该目录(我添加了一些模板Haskell 日志记录确认这是错误的)。doesDirectoryExist <PWD>.git
有没有办法以某种方式从 Hydra 获取 git SHA?通过包含 git 目录以便我可以自己获取 SHA,或者以其他方式?
九头蛇版本:SNAPSHOT-b11789f39993c614e53da39c29711b63cd266291(使用nix-2.0.4)
编辑:我还 sshed 到工作服务器并确认没有.git
目录存在正在完成构建:
[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