我真傻,真的,单单受文档的推荐就选择了 Travis 作为部分项目的持续集成工具,没有料到它早已于 2020 年 12 月更换了免费政策,不再为开源项目提供免费的用于持续集成使用的 Credits 了。当赠送的 10000 个点数用完,就需要付费才能进行构建了。

当然,作为经济驱动的公司,近些天来又受 Github Actions 等其它持续集成工具打压了盈利空间,抛弃开源用户选择转型做起了商人事业也并非不可理解。感谢它曾为开发者提供的便利,不过作为一个佛系开发者,终于还是需要转投到别的免费工具上去了——Gihub Actions。

编写新的 workflow.yml

那么首先,我们就需要将为 Travis 编写的命名为 .travis.yml 的配置文件,翻译成 Github Actions 能识别的 workflow.yml 配置文件。

以献给中文读者的设计模式教程这个项目为例,原有的 .travis.yml 内容如下:

language: node_js
node_js:- lts/*
branches:only:- main
install:- cd vuepress- yarn install
script:- yarn build
deploy:provider: pagesskip_cleanup: truelocal_dir: vuepress/docs/.vuepress/distgithub_token: $CI_DEPLOY_TOKENkeep_history: trueon:branch: main

当检测到 main 分支代码更新后,启动持续集成工具。克隆项目,进入到项目的 vuepress 目录下执行安装依赖和生成静态文件操作,最后将 /vuepress/docs/.vuepress/dist 目录下的静态文件,上传到 gh-pages 分支,交给 Github 部署。

使用 Github Actions 实现上面的过程,首先在项目根目录创建 .github/workflows 文件夹,在文件夹内创建 workflow 配置文件,例如 deploy.yml,编写内容如下:

name: Vuepress Deploymenton:push:branches:- mainjobs:pages:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: Use Node.js 14.xuses: actions/setup-node@v1with:node-version: '14.x'- name: Cache NPM dependenciesuses: actions/cache@v2with:path: node_moduleskey: ${{ runner.OS }}-npm-cacherestore-keys: |${{ runner.OS }}-npm-cache- name: Install Dependenciesrun: |cd vuepressnpm install- name: Buildrun: |cd vuepressnpm run build- name: Deployuses: peaceiris/actions-gh-pages@v3with:github_token: ${{ secrets.GITHUB_TOKEN }}deploy_key: ${{ secrets.ACCESS_TOKEN }}publish_dir: vuepress/docs/.vuepress/distpublish_branch: gh-pages

创建 SSH Deploy Key

这一步是为了给 Github Actions 远程服务器访问我的 Github 账号提供凭证。

假如没有启用账号二重验证,您也可以生成 Personal access token 作为替代。

启动命令行工具,创建 SSH 部署密钥:

# 进入到当前用户的 .ssh 目录下
cd ~/.ssh
# 创建 SSH 密钥
ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f design-patterns-for-humans-zh-gh-pages

其中,design-patterns-for-humans-zh-gh-pages.pub 为公钥,应上传到 Github 账户 SSH keys 设置中;不带后缀的为私钥,应作为 Github 项目仓库的 Secret,根据前面的配置,这里命名为 ACCESS_TOKEN

最后一步

最后,移除 Github 仓库中用于 Travis 的删除原有部署密钥,例如 CI_DEPLOY_TOKEN,删除项目中的 .travis.yml 文件,提交代码到 Github 即可。

原始链接

  • 「更换持续集成工具,从 Travis 到 Github Actions」

更换持续集成工具,从 Travis 到 Github Actions相关推荐

  1. 持续集成与持续部署(三)——实现持续集成的效率工具对比之Jenkins、Travis CI、Circle CI和其他持续集成工具

    持续集成与持续部署(三)--实现持续集成的效率工具对比之Jenkins.Travis CI.Circle CI和其他持续集成工具 效率工具对比 点击查看效率工具 1. Jenkins Jenkins, ...

  2. 不容错过的8个持续集成工具

    如果你很熟悉"持续集成",一定会同意这样的观点:"它已经逐渐成为一种必不可少的工具".在这篇文章中,我们将介绍几款流行的持续集成工具.阅读后,你会对这些CI工具 ...

  3. 以持续集成工具实现DevOps之禅

    作为DevOps流程中的一个重要组成部分,持续集成(CI)的目标是对开发团队的代码进行集成,包括代码的构建.单元测试与集成测试的执行,以及生成执行结果的报表等等.CI使开发团队无需将时间浪费在处理代码 ...

  4. python持续集成工具_21 个好用的持续集成工具,总有一款适合你

    原标题:21 个好用的持续集成工具,总有一款适合你 市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web ...

  5. 21 个好用的持续集成工具,总有一款适合你

    市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web 开发者来说,Buddy 是一个智能的 CI/CD 工 ...

  6. 8个流行的持续集成工具

    8个流行的持续集成工具 如果你很熟悉"持续集成",一定会同意这样的观点:"使用它已经成为一种强制".如今有很多持续集成工具.  接下来将依次介绍8款持续集成工具 ...

  7. 21 个好用的持续集成工具

    市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web 开发者来说,Buddy 是一个智能的 CI/CD 工 ...

  8. 持续集成工具jenkins的部署--Windows篇

    一.前言 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.本文使用Jenkins构建githu ...

  9. python 持续集成工具_持续集成工具: Jenkins学习

    持续集成工具: Jenkins学习 -- 部分内容收集自网络,如有侵权,请联系作者删除 一. 概念 在过去的开发整体流程中,是所有人写好代码之后统一进行合并(svn,git),然后进行测试,确保准发布 ...

  10. 如何做好持续集成和部署?你不容错过的持续集成工具—Jenkins

    持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地 ...

最新文章

  1. open api的鉴权以及oauth2.0协议
  2. sublime ctags的安装使用方法
  3. 【CodeForces - 460C】Present(二分+树状数组)
  4. 丁香园在语义匹配任务上的探索与实践
  5. 大话数据结构第四章栈的应用
  6. 回溯算法——复原IP地址(Leetcode 93)
  7. (30)System Verilog进程间同步(邮箱mailbox)
  8. 用canvas实现手写签名功能
  9. Wireshark实战分析之TCP协议(一)
  10. 树算法系列之三:GBDT
  11. Github Coding Developer Book For LiuGuiLinAndroid
  12. 数据库实验一:创建数据库和表
  13. 十大排序算法(附动态图解)- Java版
  14. 斐讯k2路由虚拟服务器,斐讯K2T分离式无线路由器 新思路解决老问题(无线信号那些事)...
  15. XILINX FPGA最小逻辑单元CLBs, Slices和LUT区别
  16. Linux14.04安装Mysql Linux公社
  17. Foxmail不显示图片的处理方法
  18. 红酒百科知识(一)_manok_新浪博客
  19. 笔记本和打印机不在一个网段,无线连接打印机的方法
  20. 基于STM32的电子时钟设计

热门文章

  1. 以天下之力成天下之事,菜鸟成物流抗疫主力军
  2. 为“烦人的“QuickTime播放器设置快进,快退以及加速播放快捷键!!!
  3. MTK6577+Android之Camera驱动) ~% d
  4. 阿里首席架构师讲解“双十一”亿级流量高并发的系统架构搭建方法
  5. android OpenGL渲染带骨骼动画的3D模型
  6. 【格式转换】将JPEG图片批量处理为jpg格式
  7. 三极管场效应参数全集
  8. 【剖析 | SOFARPC 框架】系列之SOFARPC序列化比较
  9. JVM调优工具的使用方法
  10. 如何清理 C 盘空间