各位读者,新年快乐,我是过了年匆忙赶回上海努力搬砖的蛮三刀。html
Github以前更新了一个Action功能(应该是好久之前了),能够实现不少自动化操做。用来替代用户本身设置的自动化脚本(好比:钩子+Jenkins)。python
因为平时根本不会有需求用到它,毕竟平时都在用公司的CI/CD流程,因此一直没有机会玩Action。git
借着春节放假,就本身写个小Demo体验一下。github
本文经过实现一个提交代码后自动执行Junit单元测试并输出测试报告的自动化流程小Demo,来快速上手Github Action。面试
若是你对Github Action彻底没有概念,我推荐先去看一下CI/CD(持续集成/持续交付)的概念:算法
https://www.redhat.com/zh/top...ubuntu
Github Action官方文档中对自身的定义:后端
在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工做流程。 您能够发现、建立和共享操做以执行您喜欢的任何做业(包括 CI/CD),并将操做合并到彻底自定义的工做流程中。
用人话说,就是你能够给你的代码仓库部署一系列自动化脚本,在你进行了提交/合并分支等操做后,自动执行脚本。设计模式
阮一峰Github Action指南中的介绍:缓存
你们知道,持续集成由不少操做组成,好比抓取代码、运行测试、登陆远程服务器,发布到第三方服务等等。GitHub 把这些操做就称为 actions。不少操做在不一样项目里面是相似的,彻底能够共享。GitHub 注意到了这一点,想出了一个很妙的点子,容许开发者把每一个操做写成独立的脚本文件,存放到代码仓库,使得其余开发者能够引用。
若是你须要某个 action,没必要本身写复杂的脚本,直接引用他人写好的 action 便可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。
GitHub Actions 有一些本身的术语:
看这些介绍和定义,其实比较枯燥,咱们直接来看代码实现,在代码中来理解这些定义和指令。
首先,用你本身的任意GitHub仓库,在仓库内添加文件夹.github/workflow
或者.github/workflows
:
一个库能够有多个 workflow 文件。GitHub 只要发现.github/workflows目录里面有.yml文件,就会自动运行该文件。
一个yml脚本即是Action的核心了,咱们新建一个blank.yml
,内容以下:
我在代码里作了一些注释,帮助你们理解每一个指令的含义。
整个脚本大体的流程以下:
ok,写完脚本,咱们须要来编写一些测试代码,让Junit有事可作。
我使用了本身的一个仓库,上面有完整的action脚本和测试类代码,供参考:
https://github.com/qqxx6661/a...
这是一个Maven仓库,咱们在test文件夹内加入测试代码。
上面的测试代码测试的是下面的一个静态方法:
将代码commit并push后,点开你的仓库主页,点击Action标签:
能够看到已经有了执行信息。
接着看下咱们的Action到底有没有执行,点开Action标签,已经发现了Junit:
能够进行脚本代码的在线编辑:
点进本次commit执行的记录,能够看到,action顺利完成了几个步骤:
点开Maven的构建日志,能够看到咱们第一次跑action,全部的依赖仍是即时下载的:
单元测试运行的日志输出正常:
为了试验Maven的依赖包是否可以使用到缓存,咱们再写几个单元测试,而后commit:
能够看到,新的action日志里直接开始了编译,再也不须要下载全量的包:
单元测试页成功执行:
至此,咱们的简易入门教程便结束了。
固然,这还只是Action的冰山一角,其能作的事情远不止于此:
等着大家的探索。
https://docs.github.com/cn/ac...
http://www.ruanyifeng.com/blo...
我是一名奋斗在一线的互联网后端开发工程师。
平时主要关注后端开发,数据安全,边缘计算等方向,欢迎交流。
各大平台都能找到我
原创文章主要内容
我的公众号:后端技术漫谈
若是文章对你有帮助,求各位大佬点赞支持一下,你的点赞和在看是我更新的动力~