github Action使用
需求
最近想实现一个自动部署惊天博客的功能,我有一个静态博客项目,是使用hugo进行编译和部署的,之前自己写了一个脚本将变动的博客自动编译部署到github page 上,也不是很麻烦。但是需要在本机执行一次命令,没有完全自动化,以前了解过github action的功能,可以在某个分支提交代码时触发一个任务,很适合我这个场景,今天来尝试一下。
github action 其实就是设置一个触发条件,然后github提供一个运行环境去执行我们实现定义好的程序,每次执行这个任务时,所给的环境都是崭新的,不保存数据。并且任务的执行时长和一天内的任务执行次数是有限制的。不然早就被薅秃了。
我的需求是,当我在博客项目main
分支 推送代码时,触发github action
执行 hugo --minify
将markdown 文件编译成静态的 html 文件,然后推送到我的github page 上,完成部署。锁执行的任务就只有三步——下载代码,编译和部署。
先说编译,这一步是需要用到hugo命令的,github action 给我们提供的环境肯定时没有这个命令的,我们需要下载安装,非常棒的是,github 收录了开发者已经写好的 action ,我们可以直接拿来用就好了,这个仓库中就有 hugo
相关的action—— peaceiris/actions-hugo@v2
同理, 部署步骤也有人提供了对应的action,我们也是直接拿来用就好了。—— peaceiris/actions-gh-pages@v3
编译之前其实还有一步,那就是下载代码,在一个全新的环境中,如果没有代码,难道要编译空气?下载代码肯定离不开 git 工具,难道要我们自己装一个 git ? 这倒不用自己做,也有现成的 action —— actions/checkout@v2
实现
我们的需求和步骤已经梳理完了,下面看怎么操作吧
- 在项目根目录下新建
.github/workflows/pages.yml
文件, 其中 yml 文件是可以随意命名的,但路径是固定的。 - 编写
page.yml
name: dcblog_action # 名字on: # 触发条件push: # 有推送动作时触发branchesjkj:- main # 这里的意思是当 main分支发生push的时候,运行下面的jobsjobs: # 要执行的任务,可以时多个deploy: # 任务名runs-on: ubuntu-18.04 # 在什么环境运行任务steps:- uses: actions/checkout@v2 # 引用actions/checkout这个action,与所在的github仓库同名with:submodules: true # Fetch Hugo themes (true OR recursive) 获取submodule主题fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod- name: Setup Hugo # 步骤名自取uses: peaceiris/actions-hugo@v2 # hugo官方提供的action,用于在任务环境中获取hugowith:hugo-version: 'latest' # 获取最新版本的hugo- name: Buildrun: hugo --minify # 使用hugo构建静态网页- name: Deployuses: peaceiris/actions-gh-pages@v3 # 一个自动发布github pages的actionwith:external_repository: dccmmtop/dccmmtop.github.io # 发布到哪个repopersonal_token: xxxx # 发布到其他repo需要提供上面生成的personal access tokenpublish_dir: ./public # 注意这里指的是要发布哪个文件夹的内容,而不是指发布到目的仓库的什么位置,因为hugo默认生成静态网页到public文件夹,所以这里发布public文件夹里的内容publish_branch: master # 发布到哪个branch
personal_token 可以去你的github setting 中获取,记得保密
验证
下面在main 分支上推送一次代码,可以在github action 标签页下看到action 运行成功的标识,以及日志:
github Action使用相关推荐
- 如何使用GitHub Action自动发布JAR到Maven仓库
之前发布开源项目Payment Spring Boot[1]到 Maven 中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一 ...
- GitHub Action + ACK:云原生 DevOps 落地利器
作者 | 瑶靖 来源 | 阿里巴巴云原生公众号 据信通院<中国 DevOps 现状调查报告(2020年)>显示,63% 的企业已经实践落地 DevOps,采用持续交付流水线打通开发.测试. ...
- 使用Github Action发布函数到阿里云serverless平台
简介: 本文简述了如何通过自定义Github Action自动化部署云函数到阿里云serverless平台中 阿里云提供了函数计算,即serverless支持.同时阿里云还提供了fun cli命令行工 ...
- GitHub Action + ACK:云原生 DevOps 落地利
简介: 据信通院<中国 DevOps 现状调查报告(2020年)>显示,63% 的企业已经实践落地 DevOps,采用持续交付流水线打通开发.测试.部署和运维多个环节.但是依然有 20% ...
- 最全总结,GitHub Action自动化部署
GitHub Action简介 GitHub Actions使你可以直接在你的GitHub库中创建自定义的工作流,工作流指的就是自动化的流程,比如构建.测试.打包.发布.部署等等,也就是说你可以直接进 ...
- 什么样的 python 可以可谓专业 PyPI 项目?刚刚学到三个概念:pep8、Sphinx、pytest与GitHub Action的集成
前言: 最近在读很火的 tianshou (基于 pytorch 提供深度强化学习算法的简易接口),两个清华本科生做的.很规范.很优秀的项目. 做出来的项目,想要让别人使用.维护.建立良性可持续社区, ...
- Github Action入门
github action 概念介绍 能力介绍 支持分支 build, test, package, release, or deploy 支持 end-to-end continuous integ ...
- K8S 生态周报| Docker V2 GitHub Action 宣布 GA
「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息.欢迎订阅知乎专栏「k8s生态」[1]. Docker V2 GitHub Action 已 GA Docker ...
- 【github action+python】完成定时任务并推送(学会自制)
前言 参考图文解释Glados自动签到免费获取天数(github action版) 之前用了一阵sever酱,然后前两天说cookie过期了,后来改了也没用,于是想自己写一份cookie不过期的.我尝 ...
最新文章
- Java 18 要来了,你不会还在用Java 8吧?
- visual studio的试用版评估期已结束 解决办法
- MTK6589下传感器框架结构和代码分析以及传感器的参数指标
- application.yml如何显示成小叶子图标
- 自增符号++(自减符号--)带来的部分影响
- 单例Singleton
- Centos下MySql用户管理
- 如何输入一个整数逆序输出_如何匹配DSP输入输出信号
- 收藏 | 深度学习调参有哪些技巧?
- 1.10.返回四舍五入后的值.round()
- 机器人分拣技术与产品提供商“三维通”获2000万元Pre-A轮融资...
- java merge_java – OptimisticLockException当使用JPA merge()
- 使用ByteArray及AMF来提高Data Object的操作效率
- Flink DataStream的wordCount、数据源和Sink、Side Outputs、两阶段提交(two-phase commit, 2PC)
- Serialize Your Deck with Positron [XML Serialization, XSD, C#]
- RedShift护眼软件的配置
- WhatsApp营销与引流是怎么进行的?
- 爱快iKuai 安装成功后运行提示程序运行中解决办法
- excel怎么拆分表格
- PS给照片添加镜头梦幻光斑动态图片效果
热门文章
- 加速研发自动驾驶卡车,戴姆勒买下Torc Robotics多数股权...
- 【记录十七】Sling JCR Resources
- arduino 电子时钟
- Axios 简单使用指南
- 张宇:2020版数学1000题勘误及公告
- 我国逸管家中小企业融资难现状及分析(含开题报告、实践报告)(20180404105041)
- 华为荣耀4X反复重启且无法进入recovery模式
- Debian安装Python简要说明
- rsa/ecb/pkcs1padding php,PHPJAVA RSA/ECB/PKCS1Padding 加密解密
- 黑马程序员————IO流1(day18)