如何用 install.sh 安装 act:指定版本 tag、自定义目录与校验和验证

如何用 install.sh 安装 act:指定版本 tag、自定义目录与校验和验证 如何用 install.sh 安装 act指定版本 tag、自定义目录与校验和验证【免费下载链接】actRun your GitHub Actions locally 项目地址: https://gitcode.com/GitHub_Trending/ac/actact 是一个在本地运行.github/workflows/中 GitHub Actions 的工具见 README.md。如果你不想从源码编译仓库根目录提供的 install.sh 可以直接完成安装它从项目 Releases 下载指定版本缺省为最新版本的预编译二进制包自动做 SHA-256 校验和验证然后把act二进制安装到你指定的目录。本文覆盖三件事如何指定版本 tag、如何自定义安装目录、脚本内部的校验和验证是如何执行的以及安装后如何验证结果。脚本执行流程与前置条件阅读 install.sh 的execute与tag_to_version函数脚本按以下顺序工作tag_to_version根据你传入的 tag 解析要安装的版本未传 tag 时向 Releases 查询最新 tag。check_installed_version检查本机是否已安装相同版本见下文可用-f跳过。execute创建临时目录下载该 tag 对应的压缩包act_{OS}_{ARCH}.tar.gzWindows 为.zip和同一 release 下的checksums.txthash_sha256_verify比对压缩包 SHA-256 与checksums.txt中的记录解压并将act安装到目标目录默认./bin最后打印installed ${BINDIR}/act日志并清理临时目录。运行脚本前系统上需要满足脚本实际检测到的依赖脚本会自行探测不满足则报错一个 POSIX shell脚本首行为#!/bin/shcurl或wget之一用于下载http_download函数gsha256sum、sha256sum、shasum、openssl之一用于计算 SHA-256hash_sha256函数按此顺序探测。脚本支持的组合在get_binaries中枚举操作系统为darwin、linux、windows架构为386、amd64、arm64、armv6、armv7。不在该组合内会报错退出日志为platform $PLATFORM is not supported.。指定版本 tag 与自定义安装目录用-h查看脚本内置用法usage函数的原文仅省略其中指向 Releases 页面的 URLUsage: install.sh [-b bindir] [-d] [-f] [tag] -b sets bindir or installation directory, Defaults to ./bin -d turns on debug logging -f forces installation, bypassing version checks [tag] is a tag from the projects Releases page If tag is missing, then the latest will be used.参数与任务对应关系[tag]要安装的版本。脚本会去掉 tag 开头的v得到版本号VERSION${TAG#v}。tag 列表以项目 Releases 页面为准本仓库 VERSION 文件记录的版本是0.2.88可作为示例 tag 写作v0.2.88。-b bindir安装目录默认./bin。脚本还支持用环境变量BINDIR预置该值-b参数优先生效。-d打开 debug 日志下载、临时目录等步骤会打印到 stderr。-f强制安装跳过“已安装相同版本则直接退出”的检查。主路径命令示例在仓库根目录执行# 安装最新版到默认目录 ./bin sh install.sh # 指定版本 tag并自定义安装目录 sh install.sh -b /usr/local/bin v0.2.88/usr/local/bin取自 Makefile 中PREFIX ? /usr/local的默认安装前缀make install将二进制复制到$(PREFIX)/bin/act换成你实际有写权限的目录即可。注意默认目录./bin通常不在PATH中安装后用./bin/act或完整路径调用或自行把该目录加入PATH。校验和验证是如何执行的校验和验证是脚本内建步骤不需要额外操作execute同时下载两个文件${TARBALL}如act_Linux_x86_64.tar.gz和checksums.txt二者来自同一个 tag 的 releaseTARBALL_URL/CHECKSUM_URL均以该 tag 的 release 下载地址拼接。hash_sha256_verify在checksums.txt中按压缩包文件名BASENAME取出期望的哈希值再用本机可用的哈希命令计算实际值两者不相等则报错并因set -e中断脚本hash_sha256_verify checksum for act_Linux_x86_64.tar.gz did not verify 期望值 vs 实际值上行为脚本源码中的报错模板期望值、实际值是运行时填入的哈希值不是固定日志。仓库中的 VERIFICATION 文件也指明了校验和来源各 release 下的checksums.txt。如果想自行复核流程与脚本一致取同一 release 的压缩包与checksums.txt用sha256sum等命令计算哈希并与文件记录比对。脚本默认在临时目录完成且结束后清理因此不会留下可复核的中间文件调试过程可加-d查看下载与校验日志。已装版本检查什么情况下脚本会直接退出check_installed_version会在安装前检查如果act命令已在PATH中脚本执行act --version并取输出的第 3 个字段作为已装版本与目标版本比较相同打印act version 版本 is already installed.后直接exit 0不重新安装不同或act不存在继续下载安装。也就是说重复执行同一条安装命令不会升级或重装。要绕过该检查例如目录里已有二进制但想重新覆盖安装加-fsh install.sh -b /usr/local/bin -f v0.2.88验证安装结果两个判断点均来自脚本与 Makefile 的实际行为脚本安装成功后会打印日志格式见execute函数installed /usr/local/bin/act路径部分是本次使用的BINDIR上行为脚本日志的格式示例。运行版本命令确认。Makefile 的install目标在复制二进制后执行的正是act --version可作为安装后的验证方式./bin/act --version # 默认安装目录 /usr/local/bin/act --version能打印出版本号即说明二进制可执行注意 install.sh 的版本检查正是以act --version输出为准二者一致。常见报错与适用范围以下报错信息逐字来自 install.sh 源码可作为失败时的对照依据报错stderr 日志触发条件http_download unable to find wget or curl系统上既没有curl也没有wgethash_sha256 unable to find command to compute sha-256 hash四个 SHA-256 工具gsha256sum、sha256sum、shasum、openssl都不存在hash_sha256_verify checksum for ... did not verify ... vs ...压缩包哈希与checksums.txt记录不一致安装中止unable to find tag - use latest or see ... for details传入的 tag 在 Releases 中不存在改用latest行为或不传 tagplatform $PLATFORM is not supported.操作系统/架构组合不在get_binaries支持列表中限制与边界install.sh 只负责安装预编译二进制覆盖 darwin/linux/windows 与 386/amd64/arm64/armv6/armv7 组合Windows 下压缩包为.zip、二进制带.exe。如果你的环境不在支持列表内或者需要编译当前源码README.md 给出的替代路径是安装 Go 1.20 后用make installMakefile 中install目标依赖build最终运行act --version验证。【免费下载链接】actRun your GitHub Actions locally 项目地址: https://gitcode.com/GitHub_Trending/ac/act创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考