使用NuGet锁定文件:
-使用:行动/缓存@v4
具有:路径:~/.nuget/packages
钥匙:${{runner.os}}-nuget-${hashFiles('**/packages.lock.json')}}
恢复密钥:|
${{runner.os}}-nuget-
根据环境的不同,可能会在全局缓存文件夹中预先安装大型包。使用行动/缓存@v4
现在可以使用排除不需要的包排除模式
-使用:行动/缓存@v4
具有:路径:|
~/.nuget/packages
!~/.nuget/packages/不需要
钥匙:${{runner.os}}-nuget-${hashFiles('**/packages.lock.json')}}
恢复密钥:|
${{runner.os}}-nuget-
或者您可以像下面这样移动缓存文件夹。
注释此工作流不适用于需要将文件放置在用户配置文件包文件夹中的项目
环境价值:NUGET_包装:${{github.workspace}}/.nuget/packages
步骤:-使用:行动/缓存@v4
具有:路径:${{github.workspace}}/.nuget/packages
钥匙:${{runner.os}}-nuget-${hashFiles('**/packages.lock.json')}}
恢复密钥:|
${{runner.os}}-nuget-
-名称:缓存lein项目依赖项
使用:行动/缓存@v4
具有:路径:~/.m2/仓库
钥匙:${{runner.os}}-clojure-${hashFiles('**/project.clj')}}
恢复密钥:|
${{runner.os}}-clojure
-使用:行动/缓存@v4
具有:路径:~/.dub(配音)
钥匙:${{runner.os}}-dub-${hashFiles('**/dub.selections.json')}}
恢复密钥:|
${{runner.os}}-复制-
-使用:行动/缓存@v4
具有:路径:~\AppData\Local\dub
钥匙:${{runner.os}}-dub-${hashFiles('**/dub.selections.json')}}
恢复密钥:|
${{runner.os}}-复制-
-使用:行动/缓存@v4
具有:路径:|
~/.deno
~/.cache/deno
钥匙:${{runner.os}}-deno-${hashFiles('**/deps.ts')}}
-使用:行动/缓存@v4
具有:路径:|
~/.deno
~/Library/Caches/deno
钥匙:${{runner.os}}-deno-${hashFiles('**/deps.ts')}}
-使用:行动/缓存@v4
具有:路径:|
~\.deno
~\AppData\Local\deno
钥匙:${{runner.os}}-deno-${hashFiles('**/deps.ts')}}
-使用:行动/缓存@v4
具有:路径:|
deps公司
_建造
钥匙:${{runner.os}}-mix-${hashFiles('**/mix.lock')}}
恢复密钥:|
${{runner.os}}-混合-
-使用:行动/缓存@v2
具有:路径:|
~/.cache/rebar3
_建造
钥匙:${{runner.os}}-erlang-${env.OTP_VERSION}}-${hashFiles('**/*rebar.lock')}}
恢复密钥:|
${{runner.os}}-erlang-${{env.OTP_VERSION}}-
-使用:行动/缓存@v4
具有:路径:|
~/.cache/go构建
~/go/pkg/mod
钥匙:${{runner.os}}-go-${{hashFiles('**/go.sum')}}
恢复密钥:|
${{runner.os}}-开始-
-使用:行动/缓存@v4
具有:路径:|
~/图书馆/Caches/go-builded
~/go/pkg/mod
钥匙:${{runner.os}}-go-${{hashFiles('**/go.sum')}}
恢复密钥:|
${{runner.os}}-开始-
-使用:行动/缓存@v4
具有:路径:|
~\AppData\Local\go构建
~\go\pkg\mod
钥匙:${{runner.os}}-go-${{hashFiles('**/go.sum')}}
恢复密钥:|
${{runner.os}}-开始-
我们单独缓存Cabal存储的元素,作为~/.阴谋集团
对于具有许多依赖项的项目,可能会增长得非常大。
-名称:缓存~/.cabal/packages、~/.cab al/store和dist-newstyle
使用:行动/缓存@v4
具有:路径:|
~/.电缆/包
~/.cabal/商店
分布式新闻风格
钥匙:${{runner.os}}-${{matrix.ghc}}-${{hashFiles('**/*.cabal','**/cabal.project','**/cabal.project.freeze')}}
恢复密钥:${{runner.os}}-${{matrix.ghc}}-
-使用:行动/缓存@v4
名称:缓存~/.stack
具有:路径:~/.堆栈
钥匙:${{runner.os}}-stack-global-${hashFiles('stack.yaml')}}-${哈希文件('package.yaml])}}
恢复密钥:|
${{runner.os}}-堆栈-全局-
-使用:行动/缓存@v4
名称:缓存堆栈工作
具有:路径:.堆垛工程
钥匙:${{runner.os}}-堆栈工作-${{hashFiles(“stack.yaml”)}}-${{hashFiles(“package.yaml”)}}-${{hashFiles(“**/*.hs”)}}
恢复密钥:|
${{runner.os}}-堆叠工作-
-使用:行动/缓存@v4
名称:缓存%APPDATA%\stack%LOCALAPPDATA%\Programs\stack
具有:路径:|
~\AppData\漫游\堆栈
~\AppData\Local\Programs\stack
钥匙:${{runner.os}}-stack-global-${hashFiles('stack.yaml')}}-${哈希文件('package.yaml])}}
恢复密钥:|
${{runner.os}}-堆栈-全局-
-使用:行动/缓存@v4
名称:缓存堆叠工作
具有:路径:.堆垛工程
钥匙:${{runner.os}}-stack-work-${{hashFiles('stack.yaml')}}-${hashFile('package.yaml'')}}-${哈希文件('**/*.hs')}
恢复密钥:|
${{runner.os}}-堆叠工作-
注释确保工作流完成后不再运行Gradle守护程序。由于Gradle持有锁,创建缓存包可能会失败。请参阅Gradle Daemon文档关于如何禁用或停止Gradle守护程序。
-使用:行动/缓存@v4
具有:路径:|
~/.gradle/缓存
~/.gradle/包装器
钥匙:${{runner.os}}-gradle-${{hashFiles('**/*.gradle*','**/gradle-wapper.properties')}}
恢复密钥:|
${{runner.os}}-分级-
-名称:缓存本地Maven存储库
使用:行动/缓存@v4
具有:路径:~/.m2/仓库
钥匙:${{runner.os}}-maven-${hashFiles('**/pom.xml')}}
恢复密钥:|
${{runner.os}}-maven-
对于npm,缓存文件存储在~/.npm
在Posix上,或~\AppData\npm缓存
在Windows上,但可以使用npm配置获取缓存
在任何平台上查找路径。请参见npm文档了解更多详细信息。
如果使用npm配置
要检索缓存目录,请确保运行操作/设置模式首先确保您的净现值
版本正确。之后折旧在save-state和set-output命令中,设置输出的正确方法是使用${GITHUB_OUTPUT}
。对于linux,我们可以使用${GITHUB_OUTPUT}
而对于windows,我们需要使用${env:GITHUB_OUTPUT}
由于这两个不同的操作系统ie中的两个不同默认shell猛击
和普华永道
分别是。
注释不建议缓存节点_模块
,因为它可以突破Node版本,无法与npm-ci公司
-名称:获取npm缓存目录
身份证件:npm-cache-dir
壳:猛击
运行:echo“dir=$(npm-config-get-cache)”>>${GITHUB_OUTPUT}
-名称:获取npm缓存目录
身份证件:npm-cache-dir
壳:普华永道
运行:echo“dir=$(npm-config-get-cache)”>>${env:GITHUB_OUTPUT}
获取npm缓存目录
然后可以将步骤与操作/缓存
如下所示
-使用:行动/缓存@v4
身份证件:npm-缓存#使用此项检查`cache-hit`==>if:steps.npm-cache.outputs.cache-hit!='“true”
具有:路径:${{steps.npm-cache-dir.outputs.dir}}
钥匙:${{runner.os}}-node-${{hashFiles('**/package-lock.json')}}
恢复密钥:|
${{runner.os}}-节点-
-名称:恢复勒纳
使用:行动/缓存@v4
具有:路径:'**/节点模块'
钥匙:${{runner.os}}-${hashFiles('**/yarn.lock')}}
纱线缓存目录将取决于您的操作系统和纱线
。请参阅https://yarnpkg.com/lang/en/docs/cli/cache/了解更多信息。
-名称:获取纱线缓存目录路径
身份证件:yarn-cache-dir-path
运行:echo“dir=$(纱线缓存目录)”>>$GITHUB_OUTPUT-使用:行动/缓存@v4
身份证件:yarn-缓存#使用此项检查“cache-hit”(`steps.yarn-cache.outputs.cache-hit!='true'')
具有:路径:${{steps.yarn-cache-dir-path.outputs.dir}}
钥匙:${{runner.os}}-yarn-${hashFiles('**/yarn.lock')}}
恢复密钥:|
${{runner.os}}-纱线-
纱线2缓存目录将取决于您的配置。请参见https://yarnpkg.com/configuration/yarnrc#cacheFolder了解更多信息。
-名称:获取纱线缓存目录路径
身份证件:yarn-cache-dir-path
运行:echo“dir=$(纱线配置获取缓存文件夹)”>>$GITHUB_OUTPUT-使用:行动/缓存@v4
身份证件:纱线缓存#使用此项检查“cache-hit”(`steps.yarn-cache.outputs.cache-hit!='true'')
具有:路径:${{steps.yarn-cache-dir-path.outputs.dir}}
钥匙:${{runner.os}}-yarn-${hashFiles('**/yarn.lock')}}
恢复密钥:|
${{runner.os}}-纱线-
Esy允许导出构建的依赖项和导入预构建的依赖性。
-名称:还原缓存
身份证件:恢复卡
使用:行动/缓存@v4
具有:路径:_出口
钥匙:${{runner.os}}-esy-${{hashFiles('esy.lock/index.json')}}
恢复密钥:|
${{runner.os}}-esy-
-名称:Esy安装
运行:'esy安装'-名称:导入缓存
运行:|
esy导入依赖项导出
rm-rf导出(_E)
…(生成作业)。。。
#如果有任何更改或是首次更改,则重新导出依赖项-名称:设置依赖项缓存
运行:|
esy导出依赖性
如果:steps.restore-cache.outputs.cache-hit!='“true”
-名称:获取Composer缓存目录
身份证件:作曲家缓存
运行:|
echo“dir=$(composer config cache-files-dir)”>>$GITHUB_OUTPUT
-使用:行动/缓存@v4
具有:路径:${{steps.composer-cache.outputs.dir}}
钥匙:${{runner.os}}-composer-${hashFiles('**/composer.lock')}}
恢复密钥:|
${{runner.os}}-作曲家-
对于pip,缓存目录将因操作系统而异。请参见https://pip.pypa.io/en/stable/reference/pip_install/#缓存
位置:
- Ubuntu:
~/.cache/pip
- 窗户:
~\AppData\Local\pip\Cache
- macOS:
~/Library/Caches/pip
-使用:行动/缓存@v4
具有:路径:~/.cache/pip
钥匙:${{runner.os}}-pip-${hashFiles('**/requirements.txt')}}
恢复密钥:|
${{runner.os}}-pip-
更换~/.cache/pip
用正确的路径
如果不使用Ubuntu。
-使用:行动/缓存@v4
如果:startsWith(runner.os,“Linux”)
具有:路径:~/.cache/pip
钥匙:${{runner.os}}-pip-${hashFiles('**/requirements.txt')}}
恢复密钥:|
${{runner.os}}-pip-
-使用:行动/缓存@v4
如果:startsWith(runner.os,'macOS')
具有:路径:~/Library/Caches/pip
钥匙:${{runner.os}}-pip-${hashFiles('**/requirements.txt')}}
恢复密钥:|
${{runner.os}}-pip-
-使用:行动/缓存@v4
如果:startsWith(runner.os,'Windows')
具有:路径:~\AppData\Local\pip\Cache
钥匙:${{runner.os}}-pip-${hashFiles('**/requirements.txt')}}
恢复密钥:|
${{runner.os}}-pip-
工作:建造:运行:${{matrix.os}}
策略:矩阵:操作系统:[ubuntu-latest、macos-latest和windows-latest]
包括:-操作系统:ubuntu最新
路径:~/.cache/pip-操作系统:macos-latest公司
路径:~/Library/Caches/pip-操作系统:windows最新版本
路径:~\AppData\Local\pip\Cache
步骤:-使用:行动/缓存@v4
具有:路径:${{matrix.path}}
钥匙:${{runner.os}}-pip-${hashFiles('**/requirements.txt')}}
恢复密钥:|
${{runner.os}}-pip-
注释这需要pip 20.1+
-名称:获取pip缓存目录
身份证件:点心
壳:猛击
运行:|
echo“dir=$(pip缓存目录)”>>$GITHUB_OUTPUT
-名称:pip缓存
使用:行动/缓存@v4
具有:路径:${{steps.pip-cache.outputs.dir}}
钥匙:${{runner.os}}-pip-${{hashFiles('**/requestions.txt')}}
恢复密钥:|
${{runner.os}}-pip-
-名称:设置Python
#下面的actions/cache步骤使用这个id来获得准确的python版本
身份证件:设置python
使用:行动/setup-python@v2
⋮-使用:行动/缓存@v4
具有:路径:~/.local/share/virtualenvs
钥匙:${{runner.os}}-python-${{steps.setup-python.outputs.python-version}}-pipenv-${hashFiles('Pipfile.lock')}}
对于renv,缓存目录将因操作系统而异。这个RENV_PATHS_ROOT公司
环境变量用于设置缓存位置。看看吧https://rstudio.github.io/renv/reference/paths.html#详细信息了解更多详细信息。
-名称:设置RENV_PATHS_ROOT
壳:猛击
运行:|
echo“RENV_PATHS_ROOT=${runner.temp}}/RENV”>>$GITHUB_ENV
-名称:安装并激活renv
运行:|
install.packages(“renv”)
renv::激活()
壳:脚本{0}-名称:获取R和OS版本
身份证件:获取版本
运行:|
cat(“##[set-output name=os-version;]”,sessionInfo()$running,“\n”,sep=“”)
cat(“##[set-output name=r-version;]”,r.version()$version.string,sep=“”)
壳:脚本{0}-名称:还原Renv包缓存
使用:行动/缓存@v4
具有:路径:${{env.RENV_PATHS_ROOT}}
钥匙:${{steps.get-version.outputs.os-version}}-${steps.get-version.goutputs.r-version{}-${inputs.cache-version}}-$}哈希文件('renv.lock')}}}
恢复密钥:${{steps.get-version.outputs.os-version}}-${steps.get-version.coutputs.r-version{}-
使用Bundler正确缓存gems并不是一件小事,只需使用操作/缓存
是不够.
相反,建议使用ruby/设置ruby
的bundler-cache:真
选项只要可能:
-使用:红宝石/设置-鲁比@v1
具有:ruby版本:...
集束卡:真的
-使用:行动/缓存@v4
具有:路径:|
~/.货物/箱子/
~/.货物/登记/索引/
~/.cargo/registry/cache/
~/.货物/git/db/
目标/
钥匙:${{runner.os}}-cargo-${hashFiles('**/cargo.lock')}}
-名称:缓存SBT
使用:行动/缓存@v4
具有:路径:|
~/.ivy2/缓存
~/.sbt
钥匙:${{runner.os}}-sbt-${hashFiles('**/build.sbt')}}
-使用:行动/缓存@v4
具有:路径:迦太基
钥匙:${{runner.os}}-carthage-${hashFiles('**/Cartfile.resolved')}}
恢复密钥:|
${{runner.os}}-迦太基-
Swift,Objective-C-CocoaPods
-使用:行动/缓存@v4
具有:路径:豆荚
钥匙:${{runner.os}}-pods-${{hashFiles('**/Podfile.lock')}}
恢复密钥:|
${{runner.os}}-pods-
-使用:行动/缓存@v4
具有:路径:.内部版本
钥匙:${{runner.os}}-spm-${hashFiles('**/Package.resolved')}}
恢复密钥:|
${{runner.os}}-spm-
环境价值:最小路径:.薄荷糖/lib
最小链接路径:.薄荷糖/桶
步骤:-使用:行动/缓存@v4
具有:路径:.薄荷
钥匙:${{runner.os}}-mint-${hashFiles('**/Mintfile')}}
恢复密钥:|
${{runner.os}}-薄荷-
bazelisk公司
不必单独下载和安装,因为它已经包含在GitHub中ubuntu最新
和macos-latest公司
基本图像。
-名称:缓存挡板
使用:行动/缓存@v4
具有:路径:|
~/.cache/bazel
钥匙:${{runner.os}}-bazel-${hashFiles('.bazelversion','.bazilrc','WORKSPACE','WORKSPACE.bazel','MODULE.bazel'')}}
恢复密钥:|
${{runner.os}}-bazel-
-运行:bazelisk测试//。。。
-名称:缓存挡板
使用:行动/缓存@v4
具有:路径:|
/私有/var/tmp/_bazelrunner/
钥匙:${{runner.os}}-bazel-${hashFiles('.bazelversion','.bazilrc','WORKSPACE','WORKSPACE.bazel','MODULE.bazel'')}}
恢复密钥:|
${runner.os}}-巴泽尔-
-运行:bazelisk测试//。。。