受够Github的网络问题,有时候会网络阻断的问题导致的无法访问和无法上传的问题。为了解决问题尝试过挂梯访问和自建Gitea Actions托管和服务器托管,发现两个方案都不怎么可行,感觉还是差点什么。(还是想白嫖,hhhh)
在一次偶尔的机会了解了华为云CodeArts的产品,发现基本可以满足我的博客需求,其中包括了代码托管、代码检查、构建任务、构建流水线。主要是免费的套餐内可以满足我的博客构建和部署任务。
准备环境 {#准备环境}
- 电脑一台
- 华为云的账号
- 安装Git 和 提前部署好本地的Hexo环境
- 创建ssh密钥(这个不强制使用密码验证也可以 )
注册华为云账户 {#注册华为云账户}
如果你是使用华为的账号体系,例如使用华为的手机登陆了账号,这个账号也可以登陆,如果没有账号就要注册一个新的账号,并完成实名认证。
华为云官网: https://www.huaweicloud.com/
CodeArts控制台: https://console.huaweicloud.com/devcloud/
华为云CodeArts使用 {#华为云CodeArts使用}
CodeArts订购页面: https://console.huaweicloud.com/devcloud/
选择地域
- 体验版
- 同意协议
- 立即开通
然后进入 CodeArts控制台
新建一个项目 - 然后再进入刚刚新创建的项目当中 - 代码托管创建一个代码仓
这里选择普通仓库来创建一个空白的仓库,如果你的Hexo已经在Github存在也可以选择导入仓库来进行导入。
创建完成后,可以进去代码仓进行查看,由于涉及水印就不截图了
配置Git和CodeArts代码托管连接 {#配置Git和CodeArts代码托管连接}
如果想和git代码仓进行握手连接,我们还需要一把钥匙(ssh密钥),如果之前和GitHub或者其他git握手过,也可以使用不用重新创建一次,但是为了安全还是重新创建。
生成新的密钥:
|-----------|------------------------------------------------------|
| 1
| ssh -keygen -t rsa -b 4096 -C "email@xx.com"
|
生成的过程会有提示,直接按三次回车即可。
生成的rsa私钥和pub公钥会存放在 ~/.ssh
目录下面。
打开 CodeArts添加SSH密钥 添加一把SSH密钥。
在 Git Bash 查看公钥文件
|-----------|-------------------------------|
| 1
| cat ~/.ssh/id_rsa.pub
|
将输出的内容,复制粘贴到 密钥
里面,点击 确定
进行保存。
git配置和推送 {#git配置和推送}
先选择一个hexo的项目目录,如果没有就创建一个目录。然后在目录内选择git终端运行。
|-----------|------------------|
| 1
| git init
|
连接到git仓库和同步远程仓库
|-------------------|----------------------------------------------------------------------|
| 1 2 3 4 5
| # 连接到远程仓库 git remote add origin <url> # 同步远程仓库到本地仓库 git pull
|
文件暂存和推送到仓库
|-------------------------|--------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8
| # 写入暂存 git add . # 暂存到当前仓库 git commit -m "你弄了什么写一个简述" # 推送目录到远程仓库 git push origin master
|
这样就完成了,git的推送,下一步进行hexo自动构建。
CodeArts自动构建hexo {#CodeArts自动构建hexo}
在页面左侧找到 - 持续交付 -选择编译构建
选择Repo的仓库,选择代码仓和默认分支
在构建模板搜索 npm
选择该模板
构建环境配置,这里构建类型和执行主机,三项默认即可。
代码下载配置,默认即可。
这里的Npm构建需要修改hexo的文件。
下面附我的构建文件,可能注意到为什么不使用hexo命令来进行构建。因为在测试的时候发现写hexo的命令不执行,所以使用npm命令来执行。
大家可能会有一些插件一起构建的,比如algolia搜索这些等等。大家可以在博客根目录找到 package.json
这个文件,通过该配置文件来进行自定义目录。
|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| export PATH= $PATH :~/.npm-global/bin #设置缓存目录 npm config set cache ./npmcache #nodejs 版本小于 18 时 可以设置下面的值 #npm config set registry https://repo.huaweicloud.com/repository/npm/ #npm config set registry https://repo.huaweicloud.com/repository/npm/ #npm config set disturl https://repo.huaweicloud.com/nodejs #npm config set sass_binary_site https://repo.huaweicloud.com/node-sass/ #npm config set phantomjs_cdnurl https://repo.huaweicloud.com/phantomjs #npm config set chromedriver_cdnurl https://repo.huaweicloud.com/chromedriver #npm config set operadriver_cdnurl https://repo.huaweicloud.com/operadriver #npm config set electron_mirror https://repo.huaweicloud.com/electron/ #npm config set python_mirror https://repo.huaweicloud.com/python #nodejs 版本大于等于 18时 可以设置下面的值 npm config set registry https://repo.huaweicloud.com/repository/npm/ npm config set prefix '~/.npm-global' #如需安装node-sass #npm install node-sass --verbose #加载依赖 npm install --verbose # 避免文章发布时间错乱 find source /_posts -name '*.md' | while read file; do touch -d " $(git log -1 --format= "@%ct" " $file " ) " " $file " ; done #默认构建 #npm run build npm run clean && npm run build && npm run swpp && npm run deploy && npm run algolia #tar -zcvf demo.tar.gz ./**
|
上传文件到软件发布库,可以删除或者禁用。如果使用可以搭配和华为obs静态网站一起使用
编译构造状态查询 {#编译构造状态查询}
可以看见构造时间,触发标签等等,如果编译错误还可以查看错误状态。
后语 {#后语}
这样写文章的时候,可以通过CodeArts的文件编辑器来进行新建文章,就是搭配addrlink的链接标签需要自定义,其他感觉没有什么问题。
关于托管网站问题,可以在搜索引擎找到相关的方案,在 _config.yml
自定义模块,可以在构建完成后上传到腾讯COS、华为OBS、GitHub这些都没有问题。