GitHub Actions是GitHub的一种CI/CD服务。它可以作为从开发系统转化到生产系统的一种工作流机制。GitHub事件不但能够触发各种action(如:提交拉取请求、开启问题、合并拉取请求等),而且可以执行任何命令。例如,它们可用于格式化代码、拉取请求,将问题的注释与另一个工单系统的注释相同步,为新的问题添加适当的标签,以及触发全面的云部署。
通常,该工作流由一到多个作业组成。这些作业在自己的虚拟机或容器(运行程序,runner)中运行,并能执行一到多个步骤。其中,每一个步骤都可以是一个shell脚本或action。其实,它是专门为GitHub CI生态系统打包的一段可重用的代码。
由于GitHub托管着数以百万计的开源项目,这些项目可以通过拉取请求,进行分叉(fork)和贡献(contribute),因此GitHub Actions的安全性对于防范供应链攻击来说是至关重要的。下面,我们来讨论一些值得借鉴的优秀实践: