跳到内容

最新提交

 

历史

历史
693行(580个位置)·17.9 KB

示例.md

文件元数据和控件

693行(580个位置)·17.9 KB

示例

C#-NuGet(编号)

使用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-

Clojure-Lein Deps公司

-名称:缓存lein项目依赖项
  使用:行动/缓存@v4
  具有:路径:~/.m2/仓库
    钥匙:${{runner.os}}-clojure-${hashFiles('**/project.clj')}}
    恢复密钥:|
${{runner.os}}-clojure

D-配音

POSIX公司

-使用:行动/缓存@v4
  具有:路径:~/.dub(配音)
    钥匙:${{runner.os}}-dub-${hashFiles('**/dub.selections.json')}}
    恢复密钥:|
${{runner.os}}-复制-

窗户

-使用:行动/缓存@v4
  具有:路径:~\AppData\Local\dub
    钥匙:${{runner.os}}-dub-${hashFiles('**/dub.selections.json')}}
    恢复密钥:|
${{runner.os}}-复制-

德诺

Linux操作系统

-使用:行动/缓存@v4
  具有:路径:|
~/.deno
~/.cache/deno
    钥匙:${{runner.os}}-deno-${hashFiles('**/deps.ts')}}

macOS操作系统

-使用:行动/缓存@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}}-混合-

Erlang-钢筋3

-使用:行动/缓存@v2
  具有:路径:|
~/.cache/rebar3
_建造
    钥匙:${{runner.os}}-erlang-${env.OTP_VERSION}}-${hashFiles('**/*rebar.lock')}}
    恢复密钥:|
${{runner.os}}-erlang-${{env.OTP_VERSION}}-

Go-模块

Linux操作系统

-使用:行动/缓存@v4
  具有:路径:|
~/.cache/go构建
~/go/pkg/mod
    钥匙:${{runner.os}}-go-${{hashFiles('**/go.sum')}}
    恢复密钥:|
${{runner.os}}-开始-

macOS操作系统

-使用:行动/缓存@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}}-

Haskell-烟囱

Linux或macOS

-使用:行动/缓存@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}}-堆叠工作-

Java-等级

注释确保工作流完成后不再运行Gradle守护程序。由于Gradle持有锁,创建缓存包可能会失败。请参阅Gradle Daemon文档关于如何禁用或停止Gradle守护程序。

-使用:行动/缓存@v4
  具有:路径:|
~/.gradle/缓存
~/.gradle/包装器
    钥匙:${{runner.os}}-gradle-${{hashFiles('**/*.gradle*','**/gradle-wapper.properties')}}
    恢复密钥:|
${{runner.os}}-分级-

Java-马文

-名称:缓存本地Maven存储库
  使用:行动/缓存@v4
  具有:路径:~/.m2/仓库
    钥匙:${{runner.os}}-maven-${hashFiles('**/pom.xml')}}
    恢复密钥:|
${{runner.os}}-maven-

节点-npm

对于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公司

使用相同的shell获取npm缓存目录

巴什炮弹

-名称:获取npm缓存目录
  身份证件:npm-cache-dir
  :猛击
  运行:echo“dir=$(npm-config-get-cache)”>>${GITHUB_OUTPUT}

PWSH外壳

-名称:获取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}}-节点-

节点-Lerna

-名称:恢复勒纳
  使用:行动/缓存@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

纱线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}}-纱线-

OCaml/原因-esy

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”

PHP-编写器

-名称:获取Composer缓存目录
  身份证件:作曲家缓存
  运行:|
echo“dir=$(composer config cache-files-dir)”>>$GITHUB_OUTPUT
-使用:行动/缓存@v4
  具有:路径:${{steps.composer-cache.outputs.dir}}
    钥匙:${{runner.os}}-composer-${hashFiles('**/composer.lock')}}
    恢复密钥:|
${{runner.os}}-作曲家-

Python-pip

对于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获取缓存位置

注释这需要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-pipenv

-名称:设置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')}}

R-雷恩

对于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{}-

Ruby-捆绑器

使用Bundler正确缓存gems并不是一件小事,只需使用操作/缓存不够.

相反,建议使用ruby/设置rubybundler-cache:真选项只要可能:

-使用:红宝石/设置-鲁比@v1
  具有:ruby版本:...
    集束卡:真的

锈蚀-货物

-使用:行动/缓存@v4
  具有:路径:|
~/.货物/箱子/
~/.货物/登记/索引/
~/.cargo/registry/cache/
~/.货物/git/db/
目标/
    钥匙:${{runner.os}}-cargo-${hashFiles('**/cargo.lock')}}

Scala-SBT公司

-名称:缓存SBT
  使用:行动/缓存@v4
  具有:路径:|
~/.ivy2/缓存
~/.sbt
    钥匙:${{runner.os}}-sbt-${hashFiles('**/build.sbt')}}

Swift,Objective-C-迦太基

-使用:行动/缓存@v4
  具有:路径:迦太基
    钥匙:${{runner.os}}-carthage-${hashFiles('**/Cartfile.resolved')}}
    恢复密钥:|
${{runner.os}}-迦太基-

Swift,Objective-C-CocoaPods

-使用:行动/缓存@v4
  具有:路径:豆荚
    钥匙:${{runner.os}}-pods-${{hashFiles('**/Podfile.lock')}}
    恢复密钥:|
${{runner.os}}-pods-

Swift-Swift软件包经理

-使用:行动/缓存@v4
  具有:路径:.内部版本
    钥匙:${{runner.os}}-spm-${hashFiles('**/Package.resolved')}}
    恢复密钥:|
${{runner.os}}-spm-

Swift-薄荷

环境价值:最小路径:.薄荷糖/lib
  最小链接路径:.薄荷糖/桶
步骤:-使用:行动/缓存@v4
    具有:路径:.薄荷
      钥匙:${{runner.os}}-mint-${hashFiles('**/Mintfile')}}
      恢复密钥:|
${{runner.os}}-薄荷-

*-挡板

bazelisk公司不必单独下载和安装,因为它已经包含在GitHub中ubuntu最新macos-latest公司基本图像。

Linux操作系统

-名称:缓存挡板
  使用:行动/缓存@v4
  具有:路径:|
~/.cache/bazel
    钥匙:${{runner.os}}-bazel-${hashFiles('.bazelversion','.bazilrc','WORKSPACE','WORKSPACE.bazel','MODULE.bazel'')}}
    恢复密钥:|
${{runner.os}}-bazel-
-运行:bazelisk测试//。。。

macOS操作系统

-名称:缓存挡板
  使用:行动/缓存@v4
  具有:路径:|
/私有/var/tmp/_bazelrunner/
    钥匙:${{runner.os}}-bazel-${hashFiles('.bazelversion','.bazilrc','WORKSPACE','WORKSPACE.bazel','MODULE.bazel'')}}
    恢复密钥:|
${runner.os}}-巴泽尔-
-运行:bazelisk测试//。。。