TIPS 关于github action cache

这篇具有很好参考价值的文章主要介绍了TIPS 关于github action cache。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

github action cache

如果不知道github action 是什么,建议不要继续阅读。

github action cache 官方手册
github action cache 首页

action cache 可以做什么

action cache 可以帮助我们缓存一些action生成的数据。一次action的job执行成功,我们可以指定缓存哪个目录或哪些目录的文件。

言外之意,job执行失败,是不会缓存数据的。

cache的key

缓存使用key来标识。key 是一个不超过512字符的字符串。可以自己定义,简单的用法可以参考下面例子中的key。
这里的hashFiles是计算指定文件的sha256值。

key的示例:
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles(‘deps/init/oceanbase.el7.x86_64.deps’) }}

共享

缓存不仅仅是key一致就可以使用了,有一些限制。通常不同的代码分支、tag、不同的操作系统都不能使用同一个缓存。
但是也有例外,比如

  • 默认分支(通常是master或main)的缓存可以让其它分支使用。
  • 如果指定enableCrossOsArchive为true就可以跨操作系统使用。

TIPS

  • 缓存的总大小不能超过10G,否则会触发淘汰。
  • 超过7天没有访问的缓存会被删除。
  • 缓存可以手动删除,在action页面可以找到cache管理页面。
  • 缓存的匹配不仅仅使用key唯一值匹配,还可以有一些其它的匹配规则,具体的参考文档中的restore-keys
  • 缓存的操作可以拆分成存储和恢复两个动作,这样可以处理更复杂的场景,具体可以参考 action/cache的说明。

一个例子(例子来自 OceanBase):文章来源地址https://www.toymoban.com/news/detail-578271.html

name: Compile

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  ubuntu-x86_64:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v3

    - name: Install environment
      shell: bash
      run: sudo apt-get install -y git wget rpm rpm2cpio cpio make build-essential binutils m4 libtool-bin language-pack-en

    - name: Cache deps
      id: cache-deps
      uses: actions/cache@v3
      env:
        cache-name: cache-deps
      with:
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('deps/init/oceanbase.el7.x86_64.deps') }}
        # 缓存的数据放在哪个目录。
        # 如果没有命中,job执行完成后,会把这个目录的数据打包缓存起来。
        # 如果命中了,就把缓存的数据恢复到这个目录中
        path: deps/3rd
        enableCrossOsArchive: true
        
    - name: Build init
      # 判断如果判断没有命中,就执行某个动作
      if: steps.cache-deps.outputs.cache-hit != 'true'
      run: bash build.sh init
      
    - name: Build project
      shell: bash
      run: |
        bash build.sh debug
        cd build_debug && make -j4

到了这里,关于TIPS 关于github action cache的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GitHub Action一次看个透

    大家好,我是小九九的爸爸,本次给大家带来的内容是自动化部署。聊到这个方向,大家肯定都会想到CI、CD等一系列名词。那这次就来一遍看个透吧。这篇文章肯定会有没讲到的地方,也欢迎大家在评论区里补充。 首先来说一下 部署(Deployment) ,它其实就是代码发布的一

    2024年02月19日
    浏览(29)
  • 使用 Github Actions 工作流自动部署 Github Pages

    actions顾名思义就是一堆动作,是一个持续集成服务,持续集成包含了拉代码、运行测试、编译代码、登录远程服务器,发布到第三方服务等等的操作,GitHub将这些操作称为actions。 概念:Workflows, Events, Jobs, Actions, Runners Workflows 工作流 一个 Workflow 由多个 Jobs 组成 Events 定义哪

    2024年02月07日
    浏览(74)
  • 白嫖GitHub Action实现开源项目CICD

    在今天这个快速变化的时代,开发者们需要与时俱进,不断提升自己的工作效率。在这篇文章里,将一起探讨如何使用CI/CD和Github Action让你的项目更加高效,快速响应市场变化。 CI(持续集成,Continuous Integration)是一种软件开发实践,它要求开发者频繁地将代码集成到共享的

    2023年04月26日
    浏览(50)
  • 利用 GitHub Action 对项目进行自动部署

    说一下项目背景,这是一个基于 Docusaurus 搭建的个人博客平台:Yopth.github.io ⚛️ Docusaurs 是一个优秀的搭建网站框架,基于 React 和 MDX,插件化、国际化、SEO 等做的都很不错,有需要搭建网站的同学可以考虑。 该网站利用 GitHub Pages 部署,这个方式也是 Docusaurus 所支持的,详

    2023年04月24日
    浏览(43)
  • WPF--关于Action事件小结

    WPF--关于Action事件小结 1.需要类实例去调用事件建立订阅关系         public event Actionint, object MaintainEvent;         new GP1().MaintainEvent += NormalCmdAction; 2.static用处--在不便实例的时候,可以直接由类调用         public static event Actionint, object MaintainEvent;         GP1.MaintainEvent +=

    2024年02月12日
    浏览(31)
  • GitHub Actions自动化部署+定时百度链接推送

    # 前言 最近用VuePress搭建了一个静态网站,由于是纯静态的东西,每次修改完文章都要重新打包上传很是麻烦。虽然vuepress-theme-vdoing主题作者提供了GitHub Actions自动化部署的教程文章,但是过于简陋且是19年发布的。。 # 1. 创建一个GitHub仓库(私有仓库也可以) # 2. 设置服务器地

    2024年02月12日
    浏览(56)
  • 【Github-Action】统计整个社区所有项目的贡献

    项目地址 如果你对github-action感兴趣,还可以看这篇文章, 这篇文章教会你如何开发Github Action,并且让你明白它是什么,怎么用,如何做到的。如何开发一个action 我是一个生成 contributors.png 的 github-action,我和市面上其他的不一样,我专门解决整个 Organization 的 commit 统计,

    2024年01月16日
    浏览(49)
  • 使用 GitHub Action 自动更新 Sealos 集群的应用镜像

    在 IT 领域,自动化无疑已成为提高工作效率和减少人为错误的关键。Sealos 作为一个强大的云操作系统,已经为许多企业和开发者提供了稳定可靠的服务。与此同时,随着技术不断发展,集成更多的功能和服务变得尤为重要。考虑到这一点,本文将介绍如何 利用 GitHub Action 来

    2024年02月08日
    浏览(45)
  • 使用GitHub Actions 来进行项目远程服务器部署

    由于项目源码是托管在github的,而部署是放在远程服务器上,并且使用nginx部署。 现在的部署流程时,需要更新时,在本地切换到master分支,执行构建操作,拿到构建出的dist目录,将其上传到远程服务的某个nginx目录,重启nginx服务。 基于以上,使用GitHub Actions做CI/CD流程。

    2024年02月14日
    浏览(50)
  • Github Actions 执行Python定时任务(时区及缓存问题处理)

    文档地址:https://docs.github.com/en/actions 这两天一直在学习Github Actions,很是兴奋,才发现这么好的东西,相见恨晚。 它是什么呢,简单讲,就是让你的Github项目具备持续集成的能力,类似于传统工具jenkins,Gitlab的CI/CD功能等,但Github Actions更加强大。 我尝试简单实践了一下,

    2024年02月09日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包