Coding持续集成概述
这篇还是需要在本地处理好静态网站推送到coding,如果不想在本地环境用hexo生成好静态网站,可以试试《Github Actions自动部署Hexo博客》
如果Github访问总是不太稳定,可以试试《Coding持续集成自动部署Hexo博客》
一直以来,本站都是以 GitHub
为主, Coding
为辅,但每次更新网站文章,都需要部署两次,有点麻烦。尽管我用 Windows脚本语言
实现了双击一次自动部署一个站点,双击两次全部搞定。
但今天发现可以通过 Coding
来实现同步到 GitHub
上,当然还是要试试看。早上发现一篇文章是关于 GitHub
自动推送到 Coding
的,但需要借助 zeit now
来实现,而且过程有点复杂对于我来说,最要紧的它不是从 Coding
→ GitHub
。
配置Coding-Ci
首先进入 Coding
中的项目页面左侧栏找到 持续集成
中的 构建计划
,如果没有则需要自行开启,步骤为左下方的项目设置→项目与成员→功能开关
,找到持续集成这一项打开后,返回之前的项目页面。
可以看到在左上方的构建计划旁边有一个蓝色+
按钮,点击它则进入到选择构建计划模板
页面,拉到网页最底部可看到 自定义构建过程
,或者通过 Ctrl+F
搜索 Jenkinsfile
,也能快速找到,点击 自定义构建过程
进入下一步操作。
构建计划名称自己命名,代码仓库下的代码源选择你要处理的仓库名,我这里是 Coding
,配置来源为使用静态配置的Jenkinsfile
,然后确定后进入 流程配置
,选择 文本编辑器
。
这时候先暂停一会,得先去登录 GitHub
,定位到如此网址 https://github.com/settings/profile
,点击 Developer settings
,新建一个token,然后勾选 repo
后确定申请,记下这个token。
然后把下面代码粘贴到文本编辑器中保存一下,如果复制不便可进入 https://gitee.com/ct2/web/blob/master/coding-sync-github.md
复制。
pipeline {
agent any
stages {
stage('检出') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: env.GIT_BUILD_REF]],
userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]
])
}
}
stage('推送部署') {
steps {
echo '正在推送文件...'
sh 'git fetch $FETCH'
sh 'git push -f $FETCH HEAD:master'
echo '已完成推送.'
}
}
}
}
看下图,这个时候我们来配置一下环境变量, https://用户名:[email protected]/用户名/仓库名.git
,这里的用户名为你github的用户名。这段配好后,看下面图,添加到环境变量,勾选保密,这样就不会把token在构建日志中输出了,提高了安全性。
这样就算完成了。进入 coding
中的代码仓库,用 web
上传一个文件看看,然后你会发现后台自动进行构建,此时你打开 GitHub
的代码仓库,刷新一下看看,如果成功的话,通过 coding
网页上传的文件在 GitHub
上也会出现,删除刚上传的这个文件也会发现 GitHub
中的文件被删除了。
Coding-Ci免费额度
不过 Coding
持续集成是有一定免费额度的,就在持续集成
中的 构建节点
中即可看到,每周构建次数200次,单次构建时长上限为30分钟,每月总构建时长为1000分钟,也足够用了。同样目前一个仓库是 2 GiB
,在仓库设置中可以看到。
2020年9月5日,Coding对免费额度又进行了“优化”,不按次数了,按每月总时长计算,每月 1 日的 0 点将会重置每月构建分钟数,额度还是1000分钟,单次构建时长上限为30分钟,但因为不计算次数,类似于推送同步到Github,构建hexo这种时常不到1分钟的来讲,是有利的。
如此一来,即可每次生成好网站文件后,还可以通过coding的网页上实现文件和文件夹的上传更新,对于非程序员来讲,有时候通过web端上传可能对新手更为友好。
尽管 Github
也能实现网页端的文件和文件夹的上传,但稳定性似乎不如 Coding
的网页版上传,不过 Github Pages
的服务倒是比 Coding Pages
要稳定些,对于我这边的网络来说。
在强调一点,由于 coding
是不需要 CNAME
文件的,如果这个时候coding中没有 CNAME
,那么就会自动删除 Github
的 CNAME
,导致 Github Pages
无法正常访问,解决办法就是在coding代码仓库根目录也放置一个 CNAME
文件,并且文件内容填写你的域名即可,不需要写 http
协议。
最后你还可以通过《Vercel Zeit now自动部署Github为hexo博客加速》,目前(2020年),国内访问Vercel的速度还是很不错的。