gpt4 book ai didi

caching - 清除 GitHub 操作中的缓存

转载 作者:行者123 更新时间:2023-12-04 11:05:50 28 4
gpt4 key购买 nike

我正在开发 R 包并使用 GitHub Action (GHA) 作为持续集成 (CI) 提供程序。我使用 actions/cache 缓存 R 包(依赖项) .现在我想清除所有缓存。我怎样才能做到这一点?

我使用的 GHA 工作流程的一部分:

on: push

name: R-CMD-check

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}

name: ${{ matrix.config.os }} (${{ matrix.config.r }})

strategy:
fail-fast: false
matrix:
config:
# - {os: windows-latest, r: 'devel'}
- {os: macOS-latest, r: 'release'}

env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RSPM: ${{ matrix.config.rspm }}
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v2

- uses: r-lib/actions/setup-r@master

- name: Query dependencies
run: |
repos <- c("https://r-hyperspec.github.io/hySpc.pkgs/", getOption("repos"))
saveRDS("remotes::dev_package_deps(dependencies = TRUE)", ".github/depends.Rds", version = 2)
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
shell: Rscript {0}

- name: Cache R packages
if: runner.os != 'Windows'
uses: actions/cache@v1
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-

- name: Install dependencies
run: remotes::install_deps(dependencies = TRUE)
shell: Rscript {0}

- name: Session info
run: |
options(width = 100)
pkgs <- installed.packages()[, "Package"]
sessioninfo::session_info(pkgs, include_base = TRUE)
shell: Rscript {0}

最佳答案

正如 corresponding issue 中指出的那样,目前没有清除缓存的 native 解决方案。
但是,有两种实用的解决方法可以使用新缓存。这与清除当前缓存并不完全相同,但它可以完成这项工作。
为此,您必须更改缓存 key (以及任何 restore-keys )。因为如果键不同,这被认为是缓存未命中,您可以从一个新的开始。
您可以通过直接修改工作流文件来更改缓存键,例如,通过添加版本号:

key: ${{ runner.os }}-mycache-v1-${{ hashFiles(...) }}
如果你现在想使用一个新的缓存,你所要做的就是提交一个不同的版本号:
key: ${{ runner.os }}-mycache-v2-${{ hashFiles(...) }}
如果您不想修改工作流文件而更喜欢使用 UI,则可以滥用 secrets :
key: ${{ runner.os }}-mycache-${{ secrets.CACHE_VERSION }}-${{ hashFiles(...) }}
每当 secret 更改时,将使用新的缓存。

关于caching - 清除 GitHub 操作中的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63521430/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com