workflow工作流程图(workflow怎么使用)
GitHub Actions 是 GitHub 于2018年10月推出的持续集成服务。之前我使用的是Travis CI,昨天我体验了一次GitHub Actions,感觉功能更强大,可以玩的地方更多,我就介绍一下我初次使用的感受。
GitHub Actions 是什么GitHub Actions 可以参考的同类对象有Jenkins、Azure Pelines、CircleCI、TravisCI等,都是持续集成(Continuous integration,简称CI)服务的提供商,持续集成其实说白了就是根据每次提交的变化不停的在设计、开发、测试、发布这样滚动:
而持续集成的流程是由很多步奏组成的,例如先构建准备运行环境、从Git指定分支拉取代码、编译打包、运行单元测试、登陆远程服务器、发布到第三方等等步奏,GitHub把这些动作都称之为Action,所以由多个Action构成的工作流就被命名为 GitHub Actions。
为了能让Actions能够复用,GitHub还提供了官方市场,可以搜索其他人提交的Action脚本,还有其他人收集的Action仓库:awesome actions。
GitHub Actions 的构成GitHub Actions 是由下面几部分组成的:
workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。 job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。 step(步骤):每个 job 由多个 step 构成,一步步完成。 action (动作):每个 step 可以依次执行一个或多个命令(action)。 GitHub Actions 工作流文件想要配置 GitHub Actions 的工作流,我们只需要定义一个YAML文件即可,它存放在代码仓库的.github/workflows目录,例如我的工作流文件:,文件的名字可以自己定义,没有要求。workflow 的语法字段非常多,可以参见官方文档。下面是我自己写的工作流文件:
name: buildon: [push, pull_request]jobs: build: name: building runs-on: ubuntu-latest services: mysql: image: mysql:5.7 ports: - 3306:3306 env: MYSQL_ALLOW_EMPTY_PASSWORD: yes MYSQL_DATABASE: winteree MYSQL_ROOT_PASSWORD: root options: --health-cmd=mysqladmin ping --health-interval=5s --health-timeout=2s --health-retries=3 rabbitmq: image: rabbitmq:3.7.26-management-alpine ports: - 15672:15672 - 5672:5672 zipkin: image: openzipkin/zipkin:2.21.1 ports: - 9411:9411 redis: image: redis:6.0.1 ports: - 6379:6379 steps: - uses: actions/checkout@v2 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: 1.8 - name: Verify MariaDB Connection and Load Data env: PORT: ${{ job.services.mysql.ports[3306] }} run: while ! mysqladmin ping -h127.0.0.1 -P$PORT --silent; do sleep 1 done - name: Loading Database env: PORT: ${{ job.services.mysql.ports[3306] }} run: mysql -h 127.0.0.1 -P $PORT -uroot -proot --default-character-set=utf8 winteree 来代替这个任务ID,你可以给你的任务起一个你自己的任务ID。 jobs..runs-on:是指定运行所需要的虚拟机环境。它是必填字段。目前可用的虚拟机有:ubuntu、windows、macOS。 jobs..services:是声明运行环境所需要的服务,我这里使用了MySQL、RabbitMQ、Zipkin、Redis。 jobs..steps:指定每个 Job 的运行步骤,可以包含一个或多个步骤。 jobs..steps.name:指这个不步奏的名称。 jobs..steps.run:指该步骤运行的命令或者 action。 jobs..steps.env:指该步骤所需的环境变量。 GitHub Actions 中使用密码密码是不应该公开在代码仓库里的,所以需要先到项目仓库的 Settings -> Secrets 中添加你的密码,例如我添加了名为”COVERALLS_TOKEN“的密码:
然后在workflow流程文件中使用”eralls_token }}“这样的格式来使用。
GitHub Actions 的徽章图标以后,每次修改后推送源码,GitHub Actions 都会自动运行,那怎么知道运行的结果呢,GitHub Actions 为我们提供了徽标图标,可以加入到你的项目主页中,图标地址语法如下:
:所有者的用户名 :项目仓库名称 :工作流名称 :分支名称,如果不写默认是master分支所以我的图标地址就是:
我的使用感受我之前一直使用的是TravisCI,这次使用了GitHub Actions以后感觉速度比TravisCI快很多,而且支持的东西也比TravisCI多,配置起来也不复杂,可玩性非常高,可以实现非常多自动化的东西,以后我主要就使用GitHub Actions来做CI/CD了。
推荐阅读
-
蜘蛛从哪里吐丝出来(蜘蛛从什么地方吐丝)
蜘蛛的丝并不是从嘴里吐出来的,而是从纺绩器出来的,通常位于腹部的后部。蜘蛛吐丝主要靠腹部后面的三对凸起,也就是它的纺器。纺器通过纺...
-
螳臂当车是什么意思(螳臂当车下一句)
螳臂当车是一个汉语成语,该成语指螳螂举起前肢企图阻挡车子前进,比喻做力量做不到的事情,必然失败;在句子中一般作谓语、宾语,含贬义。...
-
西南风好钓鱼吗(西南风钓鱼应该选什么位置)
西南风钓鱼不行。刮西南风常常伴随着温度高、气压低的天气,此时水中溶氧量下降,鱼儿的活性就会变差,咬钩不积极或不咬钩。尤其是在夏季,...
-
请你自重是什么意思(请你自重出自哪里)
请你自重的意思是指请你谨言慎行,尊重自己的人格。体现了一个人对他人言行举止的正告和正确的价值观,每个人都要以人为善,不能因为自己的...
-
诸葛亮和司马懿(诸葛亮和司马懿的性格特点)
在历史地位上,诸葛亮是丞相在综合能力方面,诸葛亮要比司马懿强。其实司马懿本人也承认,一句“天下奇才”,就说明了他对诸葛亮的钦佩。对...
-
路亚水滴轮怎样装线(路亚竿水滴轮如何装线)
路亚水滴轮的接线方法很简单,首先需要将水滴轮连通电池,将电池的正极与水滴轮的正极连接,将电池的负极与水滴轮的负极连接即可。需要注意...
-
踏花归来马蹄香(踏花归来马蹄香的故事)
踏花归去马蹄香释义:马从花草上跑过去,但是马蹄上却留下了花香。典故:北宋皇帝宋徽宗赵佶喜欢绘画,他本身也是一个善于画花鸟的能手。他...
-
运动可以变白吗(运动能不能变白)
运动可以促进身体的新陈代谢、血液循环和排汗等过程,有助于排出身体内的废物和毒素,增强身体免疫力,也会提高身体素质和心理健康水平,由...
-
长白山属于哪个省(长白山在哪里)
长白山位于吉林省东南部,是中国和朝鲜的分界湖。长白山不仅是国家5A级景区,还被列为中国十大名山之一。远古时期,长白山本是一座火山,...
-
长白山是什么火山(长白山天池是活火山吗)
长白山处于休眠状态,称为休眠火山。长白山火山目前处于休眠期。在海拔两千多米的山上,有多处温泉不断从地下溢出,这说明,地下仍孕育着巨...