尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

install-nix-action 6大输入参数完全解析:Nix CI配置清单,一篇就够

install-nix-action 6大输入参数完全解析:Nix CI配置清单,一篇就够 install-nix-action 6大输入参数完全解析Nix CI配置清单一篇就够【免费下载链接】install-nix-actionInstalls Nix on GitHub Actions for the supported platforms: Linux and macOS.项目地址: https://gitcode.com/gh_mirrors/in/install-nix-actioninstall-nix-action是一个用于 CI 流水线的 GitHub Actions一条命令即可在 Linux 和 macOS 上安装 Nix。本文带你逐个解析它的6 大输入参数帮你一次性搞定 Nix CI 配置无需反复踩坑 为什么选 install-nix-action 做 Nix CI在解析参数之前先了解它的核心优势来源README⚡安装极快Linux 上约 4 秒macOS 上约 20 秒️多用户安装Linux 上默认启用沙箱sandboxing️支持自托管 Runnerself-hosted GitHub runner 也能跑配合 cachix-action可共享/nix/store二进制缓存构建更快、团队共享KVM 硬件加速默认启用方便运行 NixOS 测试和虚拟机整个 Action 由三部分构成文件作用action.yml声明 6 个输入参数并以 composite 方式执行安装脚本install-nix.sh核心安装逻辑写nix.conf、下载并执行官方安装脚本test.nix项目自测用批量生成派生项验证构建性能6 大输入参数配置清单一览所有参数都在工作流中通过with:传入均非必填参数作用默认行为extra_nix_config追加内容到/etc/nix/nix.conf不追加github_access_token用指定 token 从 GitHub 拉取规避限流自动使用默认GITHUB_TOKENinstall_url指定 Nix 安装脚本 URL固定版本官方最新发布版2.25.2install_options传给安装脚本的额外参数无nix_path设置NIX_PATH环境变量不设置需自行指定 nixpkgsenable_kvm在 Linux 上启用 KVM 硬件加速true可用时自动开启参数一extra_nix_config —— 追加 nix.conf 配置对应action.yml中的inputs.extra_nix_config内容会被追加到/etc/nix/nix.conf是自定义 Nix 行为最灵活的参数。典型用途添加二进制缓存substituterstrusted-public-keys声明system-features让 Runner 可以跑 NixOS 测试- uses: cachix/install-nix-actionv27 with: extra_nix_config: | system-features nixos-test benchmark big-parallel kvm 两个内置的 CI 优化install-nix.sh中实现若你没有在extra_nix_config里显式覆盖Action 会自动补上experimental-features nix-command flakes和always-allow-substitutes true——也就是说Flakes 开箱即用且已缓存的派生项可直接替换、无需重新构建。参数二github_access_token —— 规避 GitHub 限流Flakes 构建时需要从 GitHub 拉取仓库匿名访问限流严格。传入 token 即可提速并避免 403 错误- uses: cachix/install-nix-actionv27 with: github_access_token: ${{ secrets.GITHUB_TOKEN }}工作机制见install-nix.sh若提供了github_access_token写入access-tokens github.comtoken否则在 GitHub.com 上自动回退到默认的GITHUB_TOKENEnterprise 实例上不生效注意如果你已在extra_nix_config里手动写了access-tokens则此参数不生效参数三install_url —— 固定 Nix 版本默认安装的是官方最新发布版的安装脚本。为了构建可复现建议固定版本- uses: cachix/install-nix-actionv27 with: install_url: https://releases.nixos.org/nix/nix-2.3.7/install最低支持版本为2.3.5也适合测试非稳定版beta/rc发布下载失败时install-nix.sh会自动重试最多 5 次提升稳定性参数四install_options —— 额外安装脚本参数把额外的命令行参数传给 Nix 官方安装脚本空格分隔- uses: cachix/install-nix-actionv27 with: install_options: --no-daemon 背景知识在 macOS 或带 systemd 的 Linux 上Action 默认加--daemon参数走多用户守护进程模式且构建用户数设为 2 倍 CPU 核心数--no-daemon则切换为单用户模式。你的install_options会被拼在安装参数最前面优先级最高。参数五nix_path —— 设置 NIX_PATH 环境变量⚠️最容易漏掉的一项install-nix-action 默认不配置任何 nixpkgs你需要告诉 Nix 从哪里取包。两种方式# 方式 1使用官方 channel如 nixos-unstable - uses: cachix/install-nix-actionv27 with: nix_path: nixpkgschannel:nixos-unstable # 方式 2推荐Flakes 模式直接锁定仓库 commit无需 nix_path - uses: cachix/install-nix-actionv27 with: github_access_token: ${{ secrets.GITHUB_TOKEN }} - run: nix build - run: nix flake check该值会被写入GITHUB_ENV后续所有步骤都生效。验证 nixpkgs 版本可以跑nix-instantiate --eval -E (import nixpkgs {}).lib.version参数六enable_kvm —— KVM 硬件加速默认开启enable_kvm默认值为true。在 Linux Runner 上install-nix.sh会写入一条 udev 规则把/dev/kvm权限设为0666让 VM 和 NixOS 测试获得完整硬件加速如果 Runner 不支持 KVM则自动跳过并输出提示不会导致失败。需要关闭时例如在云厂商不允许嵌套虚拟化的 Runner 上- uses: cachix/install-nix-actionv27 with: enable_kvm: false最小完整工作流示例把上面串起来一个开箱即用的 Nix CI 配置name: Test on: pull_request: push: jobs: tests: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - uses: cachix/install-nix-actionv27 with: nix_path: nixpkgschannel:nixos-unstable - run: nix-build常见问题速查如何添加二进制缓存用extra_nix_config写入substituters与trusted-public-keys如果用 Cachix 生态则通过cachix-action的extraPullNames完成nix develop里拿不到环境变量Nix 默认运行在 pure mode用--keep VAR保留指定变量或--impure彻底关闭纯净模式临时目录报问题Action 已自动把TMPDIR指向$RUNNER_TEMP无需额外处理总结你的场景该用的参数Flakes 拉 GitHub 限流github_access_token固定 Nix 版本保证可复现install_url找不到 nixpkgs / 指定渠道nix_path加二进制缓存、system-featuresextra_nix_config切换单用户安装模式install_options跑 NixOS 测试要硬件加速enable_kvm保持默认即可掌握这 6 个输入参数你的 Nix CI 配置就完整了。源码层面想深入直接读action.yml的参数声明和install-nix.sh的配置写入逻辑即可 【免费下载链接】install-nix-actionInstalls Nix on GitHub Actions for the supported platforms: Linux and macOS.项目地址: https://gitcode.com/gh_mirrors/in/install-nix-action创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表