FreeStyleWiki

Haskell+nixpkg

このエントリーをはてなブックマークに追加

[Haskell]

nixpkgs

Haskellのパッケージはソース配布なのでCIで使用すると非常に遅い

→ nixpkgsは独自の構造でバイナリ配布しているので早い

→ 先駆者 https://scrapbox.io/mrsekut-p/Cachix

  Haskell+Stack+Nixpkgsの連携

stack.yamlに下記のような設定を追記することでstackは依存性の解決にNixも使うようになります。

nix:
  enable: true
  packages: [ sqlite ]
  • 依存関係にあるライブラリの取得についてstackビルド時にどのくらい早くなるのかは不明(調査中)
  • ただ、agda/happy/alexのようなバイナリ配布されてそうなツールはstackで取得するよりNixpkgsで取得したほうが早い

  GitHub Actionで使う

channelの一覧: NixOS - Nix channels

+ yamlのサンプル

+ yamlのサンプル

メモ

GitHub Actionでcachix/install-nix-actionを使おうとしたがあまりうまく行かなかった

こちらのDockerイメージはいい感じに使えているので、調査中https://github.com/xtruder/nix-devcontainer