受够Github的网络问题,有时候会网络阻断的问题导致的无法访问和无法上传的问题。为了解决问题尝试过挂梯访问和自建Gitea Actions托管和服务器托管,发现两个方案都不怎么可行,感觉还是差点什么。(还是想白嫖,hhhh)

在一次偶尔的机会了解了华为云CodeArts的产品,发现基本可以满足我的博客需求,其中包括了代码托管、代码检查、构建任务、构建流水线。主要是免费的套餐内可以满足我的博客构建和部署任务。

6fcb9b41f31b0526eb40eb51b4646e4c.jpg

准备环境

  1. 电脑一台
  2. 华为云的账号
  3. 安装Git 和 提前部署好本地的Hexo环境
  4. 创建ssh密钥(这个不强制使用密码验证也可以 )

注册华为云账户

如果你是使用华为的账号体系,例如使用华为的手机登陆了账号,这个账号也可以登陆,如果没有账号就要注册一个新的账号,并完成实名认证。

华为云官网:https://www.huaweicloud.com/

CodeArts控制台:https://console.huaweicloud.com/devcloud/

华为云CodeArts使用

CodeArts订购页面:https://console.huaweicloud.com/devcloud/

9b9a70dfdacefe07cf4bfafa0bcbedac.jpg

选择地域 - 体验版 - 同意协议 - 立即开通

然后进入 CodeArts控制台

0fde5118a5e928812bbf48873a0eda75.jpg

新建一个项目 - 然后再进入刚刚新创建的项目当中 - 代码托管创建一个代码仓

06f5c0579885b239ca0d8a239ab6c811.jpg

这里选择普通仓库来创建一个空白的仓库,如果你的Hexo已经在Github存在也可以选择导入仓库来进行导入。

ad08d1dade41c5c8ba7a604953d6d441.jpg

创建完成后,可以进去代码仓进行查看,由于涉及水印就不截图了

配置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配置和推送

先选择一个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

在页面左侧找到 - 持续交付 -选择编译构建

8cfe0daf15c147d7725d2a1bb63f80f9.jpg

选择Repo的仓库,选择代码仓和默认分支

12615c4eca22760a6896b941dec2d6bf.jpg

在构建模板搜索 npm 选择该模板

daa18076ceaa027532bb6ea406b94757.jpg

构建环境配置,这里构建类型和执行主机,三项默认即可。

78e5e0279c0cd7bb24a127a9dacec5d4.jpg

代码下载配置,默认即可。

45fa9cb4d919c8a0abe76466de8cde0a.jpg

这里的Npm构建需要修改hexo的文件。

2fe5777b25805d5833a12f22d75ed32b.jpg

下面附我的构建文件,可能注意到为什么不使用hexo命令来进行构建。因为在测试的时候发现写hexo的命令不执行,所以使用npm命令来执行。

大家可能会有一些插件一起构建的,比如algolia搜索这些等等。大家可以在博客根目录找到 package.json 这个文件,通过该配置文件来进行自定义目录。

1692db7873a91ba125805f0acb7b3bfa.jpg

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静态网站一起使用

编译构造状态查询

02be78f1023f385a179e44c4629c2e53.jpg

127cd88a6d254fe576d37b8d49ddbbe7.jpg

可以看见构造时间,触发标签等等,如果编译错误还可以查看错误状态。

后语

这样写文章的时候,可以通过CodeArts的文件编辑器来进行新建文章,就是搭配addrlink的链接标签需要自定义,其他感觉没有什么问题。

关于托管网站问题,可以在搜索引擎找到相关的方案,在_config.yml自定义模块,可以在构建完成后上传到腾讯COS、华为OBS、GitHub这些都没有问题。