最近偶然接触到了ci(持续集成)
这个神奇的东西,碰巧翻了翻travis-ci
的文档,发现写得十分详细,而且对公开项目是免费的,于是就为几个部署尝试了一下
文章中大部分内容都可以直接在https://docs.travis-ci.com/找到,这篇文章只是作为简单记录,同时也为第一次使用的各位减少一些坑。chenxublog.com
导入项目
首先我们先去 https://travis-ci.com 注册一个自己的账号,直接用自己的GitHub账号登陆就可以了,在右上角头像那里进入设置,然后点管理GitHub上的项目:
选择所有项目,然后保存就可以了:
配置
配置的方法十分简单,只要在自己git项目的根目录放一个文件,名字叫.travis.yml
,再按照官方文档的格式写好配置文件,commit上去之后,travis-ci会自动运行整个流程(如果配置正确的话)
我这里只拿我的maildisk项目作为举例,其他项目类型请参考官方文档。
根据官方文档,普通的c#工程只需要几行配置就搞定了,比如说我的接待喵机器人配置:
language: csharp
solution: Newbe.Mahua.Receiver.Meow/Newbe.Mahua.Receiver.Meow.sln
至于maildisk,由于使用的是.net core,所以需要自定义命令才能完成ci:
language: csharp
mono: none
dotnet: 2.1.502
script:
- cd maildisk
- dotnet build
ci会自动运行设置好的命令(它的docker系统现在是ubuntu的),如果所有命令都返回0,那么就表示测试通过,完全没有问题
总的来说,按照官方文档来写就好,没有太多的坑
自动发布release
既然上面的命令是编译,那编译好的文件可以自动发布出来吗?答案是肯定的
参考文档,我们可以稍微改造一下刚才的配置文件:
language: csharp
mono: none
dotnet: 2.1.502
script:
- cd maildisk
- dotnet publish -r win-x64
before_deploy:
- cd maildisk/bin/Debug/netcoreapp2.1/
- sudo apt-get -y install zip
- zip -r ../../../../../win-x64.zip win-x64/publish/ -r
- cd ../../../../../
deploy:
provider: releases
api_key: abcdabcdabcd
file:
- win-x64.zip
skip_cleanup: true
on:
tags: true
可以看到,我把build
直接改成了publish
,这样就直接生成了目标平台的文件,然后安装了zip
,使用它对生成的文件进行了打包,最后设置了在有tag更新时,自动发布一个release版本
这里就有一个明显的问题:由于是公开库,所以GitHub的api_key不可能直接明文放到配置文件中,我们需要在travis-ci上设置一个环境变量
打开GitHub,右上角头像进入设置:
左下角,开发者设置:
左下角,个人访问令牌:
生成新令牌:
只选择访问公共存储库这一项即可,填好令牌名称,点击生成:
把令牌记下来,记住,这个令牌只会给你看一次,这个页面关了就再也看不到了:
接着我们去travis,找到对应项目,点击右上角的更多选项–设置:
在环境变量里加上你刚刚的令牌即可,同时记下这个环境变量的名称:
最后我们把配置文件里的api_key
直接用${你设置的变量名}
替换就行了,像下面这样:
deploy:
provider: releases
api_key: ${GITHUB_TOKEN}
file:
- win-x64.zip
skip_cleanup: true
on:
tags: true
测试release
打一个tag:
把最新代码,push上去,记得加上--tag
参数把tag推上去:
最后就是等了,如果成功的话,我们会发现GitHub上自动出现了一个release:
大佬,求教你一个事情。我的评论想分成三段 评论内容 名称和时间 操作系统和ip地址 但是我div这个标签不会用,试着用了几次,差点把显示操作系统功能都弄丢了(虽然自己找回来了)。该怎么操作。我的博客地址是www.xlovett.com functions文件地址链接:https://share.weiyun.com/5Tj3Ke8 密码:hadnac 修改 评论样式 434行,麻烦大佬了
我也不会前端啊(摊手
再说我又不是大佬