Macos 在brew安装中使用GitHub操作缓存
我想使用GitHub操作缓存(Macos 在brew安装中使用GitHub操作缓存,macos,homebrew,github-actions,Macos,Homebrew,Github Actions,我想使用GitHub操作缓存(Actions)/cache@v2)以保存我的brew安装命令的缓存,而不是一次又一次地重新下载所有依赖项 这将使我的构建速度更快,我如何才能实现它?这是一个棘手的问题,因为操作/缓存取决于您将库放在一个特定的文件夹中,然后可以对其进行缓存和检索。系统文件有很多依赖项,这使得每个库在这个过程中都是唯一的 这里有三个选项可以用来完成这项任务 路径1: 我们可以考虑将brew软件包安装到特定的文件夹中,但我们不能针对每个软件包,而是针对整个操作系统。但是根据自制软件,这
Actions)/cache@v2
)以保存我的brew安装
命令的缓存,而不是一次又一次地重新下载所有依赖项
这将使我的构建速度更快,我如何才能实现它?这是一个棘手的问题,因为操作/缓存取决于您将库放在一个特定的文件夹中,然后可以对其进行缓存和检索。系统文件有很多依赖项,这使得每个库在这个过程中都是唯一的 这里有三个选项可以用来完成这项任务 路径1: 我们可以考虑将brew软件包安装到特定的文件夹中,但我们不能针对每个软件包,而是针对整个操作系统。但是根据自制软件,这不是一个好主意,因为软件包安装不正确可能会出现问题。此外,这将基本上是缓存一切,在一天结束时,我们不知道它是否会比只安装您需要的最新软件包快 路径2: 按照通常使用brew的方式安装软件包,然后复制二进制文件。这里需要注意的是,您需要在每个库的基础上执行此操作,因为依赖关系有时会失控。 这里有一个例子 通过在linux中使用apt get完成此过程,但您可以使用brew执行相同的过程 路径3: 查找或创建您自己的docker文件映像,使其与所需的最新软件包保持同步。这将允许您始终拥有最新版本,并允许您从docker映像初始化容器构建中的步骤。这将满足您的系统依赖性
jobs:
ci:
runs-on: ubuntu-latest
container:
image: <your-personalized-docker-image>
作业:
ci:
运行于:ubuntu最新版本
容器:
图片:
这很棘手,因为操作/缓存取决于您将库放在特定文件夹中,然后可以缓存和检索该文件夹。系统文件有很多依赖项,这使得每个库在这个过程中都是唯一的
这里有三个选项可以用来完成这项任务
路径1:
我们可以考虑将brew软件包安装到特定的文件夹中,但我们不能针对每个软件包,而是针对整个操作系统。但是根据自制软件,这不是一个好主意,因为软件包安装不正确可能会出现问题。此外,这将基本上是缓存一切,在一天结束时,我们不知道它是否会比只安装您需要的最新软件包快
路径2:
按照通常使用brew的方式安装软件包,然后复制二进制文件。这里需要注意的是,您需要在每个库的基础上执行此操作,因为依赖关系有时会失控。
这里有一个例子
通过在linux中使用apt get完成此过程,但您可以使用brew执行相同的过程
路径3:
查找或创建您自己的docker文件映像,使其与所需的最新软件包保持同步。这将允许您始终拥有最新版本,并允许您从docker映像初始化容器构建中的步骤。这将满足您的系统依赖性
jobs:
ci:
runs-on: ubuntu-latest
container:
image: <your-personalized-docker-image>
作业:
ci:
运行于:ubuntu最新版本
容器:
图片:
在工作流作业配置中:
步骤:
-名称:更新自制
运行:|
brew更新--预安装
cat“$(brew--存储库)/Library/Taps/homebrew/homebrew core/Formula/foo.rb”>.github/brew formulas
-名称:配置自制缓存
用途:行动/cache@v2
与:
路径:|
~/Library/Caches/Homebrew/foo--*
~/Library/Caches/Homebrew/downloads/*--foo-*
键:brew-${{hashFiles('.github/brew Formulas')}
还原密钥:brew-
-名称:安装自制依赖项
运行:|
env自制\u无\u自动\u更新=1 brew安装foo
这里的~/Library/Caches/Homebrew
对应于brew--cache
的输出
上面的配置将只存储与“foo”包相关的文件,而不是将整个目录存储到GitHub操作缓存中。这是因为GitHub提供的macOS映像上的Homebrew缓存目录已经包含基本Homebrew安装的文件(您无需再次存储)
您应该注意,此缓存不太可能加快您的工作流程。安装自制瓶子(默认设置)通常具有与从GitHub/Azure自己的存储缓存下载类似的性能,因为瓶子文件在bintray的CDN上提供。在您的工作流作业配置中:
步骤:
-名称:更新自制
运行:|
brew更新--预安装
cat“$(brew--存储库)/Library/Taps/homebrew/homebrew core/Formula/foo.rb”>.github/brew formulas
-名称:配置自制缓存
用途:行动/cache@v2
与:
路径:|
~/Library/Caches/Homebrew/foo--*
~/Library/Caches/Homebrew/downloads/*--foo-*
键:brew-${{hashFiles('.github/brew Formulas')}
还原密钥:brew-
-名称:安装自制依赖项
运行:|
env自制\u无\u自动\u更新=1 brew安装foo
这里的~/Library/Caches/Homebrew
对应于brew--cache
的输出
上面的配置将只存储与“foo”包相关的文件,而不是将整个目录存储到GitHub操作缓存中。这是因为GitHub提供的macOS映像上的Homebrew缓存目录已经包含基本Homebrew安装的文件(您无需再次存储)
您应该注意,此缓存不太可能加快您的工作流程。安装自制瓶子(默认设置)通常具有类似的性能