GitHub Actions 是 GitHub 的持续集成服务。

通常持续集成是由很多操作组成的,比如抓取代码、执行脚本、登录远程服务器、发布到第三方服务等。GitHub将这些操作称作actions。

如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。

GitHub 做了一个官方市场,可以搜索到他人提交的 actions:

下面分别从基本概念和发布流程详细说明一下GitHub Actions。

基本概念:

workflow (流程):持续集成一次运行的过程,就是一个 workflow。

job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。

step(步骤):每个 job 由多个 step 构成,一步步完成。

action (动作):每个 step 可以依次执行一个或多个命令(action)。

创建 workflow 文件,在项目的 .github/workflows 目录,创建一个 workflow 文件,这里用的是ci.yml。

name: Node.js CIon: [push]jobs:build:runs-on: ubuntu-lateststrategy:matrix:node-version: [8.x, 10.x, 12.x]steps:- uses: actions/checkout@v2- name: Use Node.js ${{ matrix.node-version }}uses: actions/setup-node@v1with:node-version: ${{ matrix.node-version }}- run: npm install- run: npm run build --if-present- run: npm testenv:CI: true

runs-on 指定在哪个操作系统上运行,有三种配置方式:

1、Ubuntu
runs-on: ubuntu-latest
2、Windows
runs-on: windows-latest
3、macOS
runs-on: macos-latest

node-version 指定 node 版本,有三种配置方式,可以指定多个版本都运行,也可以指定在单个版本下运行。

1、使用三个 node 版本,'x'是一个通配符node-version: [8.x, 10.x, 12.x]
2、可以写具体的版本号node-version: [8.16.2, 10.17.0]
3、单个版本node-version: '12.x'

如果不指定node版本,则GitHub使用环境的默认值node版本。

GitHub 托管的操作系统上安装了npm 和 yarn 来处理依赖关系。在构建和测试代码之前,可以使用 npm 和 yarn 在工作流中安装依赖项。

1、使用npm
run: npm install
1、使用yarn
run: run: yarn

安装 package.json 文件中的 dependencies 依赖。

1、使用npm
run: npm ci
1、使用yarn
run: yarn --frozen-lockfile

安装 package-lock.json 或者 npm-shrinkwrap.json 文件中的依赖,这样可以防止 npm install 安装时 lock 文件发生变化。

拉取代码。这里用的是 GitHub 官方的 action: actions/checkout@v2

GitHub Actions 持续集成相关推荐

  1. Android使用Github Actions持续集成并自动上传apk到蒲公英App内测分发平台(含证书密码脱敏)

    目录 1.前言 2.Github Actions持续集成 3.上传apk到蒲公英 4.Gradle配合Github Actions的Secret使用 4.1设置Github Actions Secre ...

  2. GitHub Actions 持续集成 - 1. 自动生成 Release 内容

    GitHub Actions 持续集成 - 1. 自动生成 Release 内容 本文地址:blog.lucien.ink/archives/490 0. 摘要 之前挖了一个坑,慢慢补上. 本文章旨在 ...

  3. GitHub Actions 持续集成 - 3. 构建 Docker 镜像并推至 Docker Hub

    GitHub Actions 持续集成 - 3. 构建 Docker 镜像并推至 Docker Hub 本文地址:blog.lucien.ink/archives/498 0. 摘要 之前挖了一个坑, ...

  4. Hexo:语雀云端写作,Github Actions持续集成

    本文章为原创内容,只发布于我的私人博客.我的 Django 博客 和 本博客 ,转载请注明,谢谢 本文已被 yuque-hexo 的开发作者列为最佳实践典型 使用 Hexo 静态博客网站发表文章,需要 ...

  5. 构建基于Jenkins + Github的持续集成环境

    登录 | 注册 John_cdy的专栏 学无止境 目录视图 摘要视图 订阅 有奖征资源,博文分享有内涵 6月推荐文章汇总 CSDN博文大赛初赛晋级名单公布 关注CSDN社区微信,福利多多 构建基于Je ...

  6. GitHub+Jenkins持续集成简介

    DevOps(英文Development(开发)和Operations(技术运营)的组合)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协 ...

  7. 持续集成部署Jenkins工作笔记0017---17.整合GitHub的持续集成环境要点说明

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152

  8. 使用GitHub Actions通过CI提高代码质量

    不论是开发.暂存还是生产环境,无时无刻都有代码不间断地被推送到 Git 上. 我们总是想要确保我们投入大量时间设计和编写的代码是具备可读性与安全性的,并且没有漏洞,能够平稳地运行. 使用自动化可以节省 ...

  9. Google云服务降价,整合持续集成工具,支持Windows和托管虚拟机

    本周二,Google举行了云平台的现场活动(点击查看视频记录),展示了一系列新特性.改进和全新定价模型. \u0026#xD;\n 定价 \u0026#xD;\n Google认为,云计算价格应该跟随 ...

最新文章

  1. Java反射在整个程序运行中的位置
  2. linux后台运行cat命令,Linux程序前台后台切换
  3. 经常需要在开发中使用Excel COM,为简化使用写了这个类,感觉还是不太方便
  4. Java 使用反射处理注解
  5. 华为机试HJ65:查找两个字符串a,b中的最长公共子串
  6. word封面和目录不要设置页码
  7. 申请苹果开发者公司账号和邓白氏编码全流程
  8. 室内定位中非视距的识别和抑制算法研究综述(部分)
  9. 微信小程序 学习第一天
  10. 漫画:为什么不能打断程序员
  11. 国内家具行业数据浅析
  12. #1163 : 博弈游戏·Nim游戏(数学博弈)
  13. 童年记忆中的街机游戏
  14. 4.2 热储存与冷储存
  15. win7 正在锁定计算机 卡住,win7关机关不掉怎么办_win7一直卡在关机的解决办法
  16. 计算机科普知识宣讲实践,【三下乡进行时】增强科技意识 提高生活质量——新疆大学2018年“两学一实践”科普大宣讲社会实践信息科学与工程学院分队走进莎车县伯什坎特乡...
  17. windows下载安装opencv
  18. 位置型PID增量型PID调节直流电机
  19. 玩转软件|简单分析好用的图文转视频工具——一帧秒创
  20. 【小程序】小程序研发平台解读 — 由来

热门文章

  1. CSDN 创始人蒋涛:选择长沙作“大本营”,打造开发者中心城市
  2. 如何“发现”失联多年好友?代码告诉你!
  3. 漫画:跑上百万次代码验证三门问题
  4. 详解 TypyScript 的一个怪异行为
  5. 搭乘云原生与数据中台实践列车 通往数字化转型前沿之旅
  6. 面试总是死在网络协议,我该怎么办?
  7. 在高考作弊这事上,古今监考老师操碎了心!
  8. 程序员版的「倚天屠龙」,看完泪奔!
  9. 看动画轻松理解「Trie树」
  10. 程序员快放弃 Android 9.0 吧,10.0 正在来的路上!