使用GitHub Actions构建 cachix 缓存
文档continuous-integration-github-actions
主要步骤
创建cache缓存仓库,并获取 CACHIX_AUTH_TOKEN
使用模板[Use this template]
# https://github.com/nix-dot-dev/getting-started-nix-template
在创建的仓库里面配置「Settings」「Secrets」CACHIX_AUTH_TOKEN和CACHIX_SIGNING_KEY,在下面生成CACHIX_SIGNING_KEY
创建 signingKey,丢了就完犊子了: 以 jcleng-dev 为例子
# 对 jcleng-dev 创建 signingKey
cachix generate-keypair jcleng-dev
Written to /Users/jcleng/.config/cachix/cachix.dhall
$ export CACHIX_SIGNING_KEY=8Ij5qEgmO+5n1inGQzCd/gidKKXTyBVGue1KAyi6aVPP0A1aQNwNl9tQYrXaizE5pfi7gD2SaGdEq7c6Hk5Bxw==
$ nix-build | cachix push jcleng-dev
# 或者进入result目录
cachix push jcleng-dev ./
# 或者在对应cache仓库Danger Zone把CACHIX_SIGNING_KEY转换为统一CACHIX_AUTH_TOKEN使用
set -x CACHIX_AUTH_TOKEN eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJmZDIxNjhmOC0zYmU5LTQ1OTEtODg5MS0yN2MyMGMzM2JiNmMiLCJzY29wZXMiOiJ0eCJ9.EGaTS6YC4XbEirfVpMipE-hg_yK7I2GGAIMvuiHhCFc
测试构建是否从仓库直接下载二进制文件
# 使用缓存仓库
cachix use jcleng-dev
# 构建
nix-build
/Users/jcleng/.config/cachix/cachix.dhall 原文
{ authToken =
"eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJmZDIxNjhmOC0zYmU5LTQ1OTEtODg5MS0yN2MyMGMzM2JiNmMiLCJzY29wZXMiOiJ0eCJ9.EGaTS6YC4XbEirfVpMipE-hg_yK7I2GGAIMvuiHhCFc"
, binaryCaches =
[ { name = "jcleng-dev"
, secretKey =
"8Ij5qEgmO+5n1inGQzCd/gidKKXTyBVGue1KAyi6aVPP0A1aQNwNl9tQYrXaizE5pfi7gD2SaGdEq7c6Hk5Bxw=="
}
]
}