LoginSignup
0
1

More than 1 year has passed since last update.

使用 Travis CI 发布软件版本

Last updated at Posted at 2021-05-30

Travis

先说说 CI——Continuous integration,持续集成,是一种软件工程流程。持续集成是指在一个项目中,任何人对代码库的任何改动,都会触发 CI 服务器自动对项目进行构建,自动运行测试,自动编译,甚至自动部署到测试环境。

这样做的好处就是,随时发现问题,随时修复。因为修复问题的成本随着时间的推移而增长,越早发现,修复成本越低。

Travis CI 是在线托管的 CI 服务,用 Travis 来进行持续集成,不需要自己搭服务器,在网页上点几下就好,用起来更方便。

最重要的是,Travis CI 对 Github 友好,这也是很多程序员喜欢 Travis CI 的理由。写完代码,提交,让 Traivs CI 跑自动化测试。

Travis CI 对开源项目免费,如果是私有项目,人家可是要收费的。

如何在开源项目中引入 Travis CI

首先注册 Travis CI,让 travis ci 能够访问你的 github 项目。
然后在根目录下添加一个名为 .travis.yml的配置文件即可。

Synapse 是一个基于浏览器的插件钱包,是一个典型的 Nodejs 项目,travisCI 配置如下:

language: node_js #语言
dist: xenial # 操作系统 ubuntu xenial
node_js:
  - 12.16.2 #版本

cache: # 保存缓存,加快测试速度
  - npm
  - yarn

before_install: #运行项目之前的操作
  - npm install -g yarn
  - yarn install

script:  #主要的代码
  - yarn test  #运行测试
  - yarn build #打包,代码在 dist 文件夹

这样你每次 push 代码到 github,就会自动触发 Travis CI 运行测试。
运行成功如下:

你还可以配置通知,在测试失败的时候发送信息:

notifications:
  email:
    recipients:
      - shooter@qq.com
      - hammer@163.com
    on_success: never # default: change
    on_failure: always # default: always

发布版本

对于开源项目来说,在打上新 tag,集成测试成功后,需要对外发布一个可用的版本,如果每次都是人工操作,很不美好。

这些脏活累活,就可以交给 Travis CI 来做了,配置如下:

before_deploy: # deploy 之前的工作
  - mv dist synapse-extension  #在之前 yarn build 之后的代码放在了 dist 文件夹
  - zip -q -r synapse-extension.zip synapse-extension  # 打包压缩
  - shasum -a 256 synapse-extension.zip | tee synapse-extension.asc # 校验值并输出结果到 console

deploy:
  provider: releases # 操作 repo 的 releases 页面
  token: $GITHUB_TOKEN # 使用 github token 验证身份,进行操作
  file:
    - synapse-extension.zip # 上传的文件
    - synapse-extension.asc #上传的文件
  skip_cleanup: true # 要上传文件到 release,所以不能自动清除
  on:
    tags: true #  只有打 tag 时才运行

申请 Github Access Token

这里有个 $GITHUB_TOKEN,让 Travis CI 取得发布版本的权限

Personal access tokens 申请 token,

选择 public_repo

得到 token

回到 Travis CI 设定頁面,加一个新的 Environment Variables
key 就是 GITHUB_TOKEN,value 就是上一步生成的 token。

大功告成,奥利给!


参考:

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1