如何在GitHub Actions中基于本地Formula构建Homebrew Bottle?
解决GitHub Actions中基于本地Homebrew Formula构建Bottle的问题
直接执行本地Formula构建Bottle时出现如下报错:
- name: build package run: | brew install --build-bottle ./Formula/mypackage.rb brew bottle mypackage
报错信息:
Error: Homebrew requires formulae to be in a tap, rejecting: ./Formula/mypackage.rb (/Users/runner/work/homebrew-test/homebrew-test/Formula/mypackage.rb)
若使用brew tap owner/mytap搭配构建命令,会默认拉取远程主分支的Formula,而非当前开发分支的本地文件。
解决方案
核心是将本地仓库作为本地tap添加,让Homebrew识别当前目录下的Formula属于合法tap,同时强制使用本地文件:
将当前工作目录作为tap添加(
owner/mytap需和Formula中声明的tap名称一致):brew tap owner/mytap ./基于本地tap的Formula执行构建:
brew install --build-bottle mypackage或明确指定tap名称:
brew install --build-bottle owner/mytap/mypackage生成Bottle:
brew bottle mypackage
完整GitHub Actions步骤示例
- name: build package run: | brew tap owner/mytap ./ brew install --build-bottle mypackage brew bottle mypackage
这样就能确保Homebrew使用当前开发分支下的本地mypackage.rb文件构建Bottle,不会拉取远程主分支内容。
内容的提问来源于stack exchange,提问作者olebole
相关产品推荐
相关产品推荐

