Я строю проект на Haskell с Nix, с CI, выполняемым сервером Hydra. Одна вещь, которую я хотел бы сделать, это встроить git SHA в само приложение, чтобы SHA можно было включить в наши отчеты об исключениях и в качестве заголовка в HTTP-ответах (чтобы убедиться, что работает последний сервер).
В моем окружении разработчика легко извлечь SHA из каталога .git
, используя пакет типа https://hackage.haskell.org/package/gitrev,, но похоже, что у Hydra нет этого каталога после клонирования (я добавил несколько шаблонов в журнал Haskell) это подтвердило, что doesDirectoryExist <PWD>.git
является ложным).
Есть ли способ как-нибудь получить мерзавца SHA от Гидры? Или путем включения каталога git, чтобы я мог получить SHA самостоятельно, или каким-либо другим способом?
Версия Hydra: 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