文章
记录
文化
加载
保存
删除
上传
删除
运维
预览
<<>>
段落缩进
#[]()
target=_blank的链接

阿鲁第32号表情
![我是描述[80% x ]]()
宽度80%高度未设的图片
-(red: 文字)-
红色的文字
[html][/html]
直接插入HTML
[youtube][描述](https://)[/youtube]
youtube视频
[bili][描述](https://)[/bili]
bilibili视频
--标题-- 内容 -- --
field元素
阿鲁
小黄脸
>本站访问有些慢,应该是国内的网络对vercel不友好。但是我有一台几乎闲置的华为云vps,于是尝试了一下配置本站的CI/CD。记录过程。 ### 前置条件 * -(#0083ab: 服务器)-:centos8 * -(#0083ab: 项目)-:需要nodejs编译的前端项目 * -(#0083ab: 部署目标)-:nginx ### 过程 1. 安装jenkins。参照#[官网介绍](https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos),安装完成后,可以在`http://yourip:8080`登入jenkins控制台,然后创建用户,安装推荐插件,等等。 2. 配置凭据。进入*Manage Credentials*界面,Url一般是`http://yourip:8080/credentials`,创建一个ssh凭据,Private Key字段需填写已经在#[github配置](https://github.com/settings/keys)过的ssh**密钥**,密钥位置一般在`~/.ssh/id_rsa`。![ssh凭据[80% x ]](https://s1.ax1x.com/2022/04/05/qOdNj0.png) 接着新建一个secret text凭据,输入密码,用于等会配置webhook:![secret text凭据[80% x ]](https://s1.ax1x.com/2022/04/05/qO4XSx.png) 3. 配置NodeJS插件。进入*Plugin Manager*界面,Url一般是`http://yourip:8080/pluginManager/available`,搜索并安装`NodeJS Plugin`,这是安装后的效果: 之后进入全局配置,Url一般是`http://yourip:8080/configureTools`,找到**NodeJS**字段,点击新增NodeJS按钮,输入别名、国内镜像、版本号、预装yarn,然后保存:![配置NodeJS插件[80% x ]](https://s1.ax1x.com/2022/04/05/qOdDN4.png) 4. 现在正式开始配置项目。先创建一个freestyle项目,Url一般是`http://yourip:8080/view/all/newJob`。进入配置界面,在**源码管理**栏,输入源码信息,选择刚刚创建的ssh凭据:![源码信息[80% x ]](https://s1.ax1x.com/2022/04/05/qOdnjP.png) 在**构建环境**栏,勾上-(#0083ab: GitHub hook trigger for GITScm polling)-,并输入刚刚配置好的NodeJS环境:![NodeJS信息[80% x ]](https://s1.ax1x.com/2022/04/05/qOBfbV.png) 在**构建**栏,选择`执行shell`,输入shell信息: ```bash node -v # 输出node版本 cd $WORKSPACE # 确保进入工作目录 yarn install --registry=https://registry.npm.taobao.org # 执行yarn install npm run generate # 执行generate rm -rf /data/www/blog # 清空之前的数据 cp -r dist/ /data/www/blog # 拷贝dist ``` 到此已经配置完成,点击保存。可以在项目界面点击**立即构建**按钮,测试效果。 5. 配置nginx和DNS。关于nginx基本配置和https证书,这里不细讲。如果已有nginx服务,只需加一项server字段(404重定向到/index.html):![增加一项**server**字段[80% x ]](https://s1.ax1x.com/2022/04/18/Ldv6US.png) 配置DNS,我用的是dnspod免费套餐,可以让境外访问解析到vercel,默认解析到我们的服务器:![境内境外分流[80% x ]](https://s1.ax1x.com/2022/04/05/qOdBEF.png) 6. 配置webhook。进入jenkins配置界面,Url一般是`http://yourip:8080/configure`,找到**GitHub**->**Shared secrets**,选择第2步创建的secret text凭据,然后保存: 打开项目github的配置界面,新建一个Webhook,Payload URL输入`http://yourip:8080/github-webhook/`,secret字段输入secret text凭据的密码,保存:![github webhook[80% x ]](https://s1.ax1x.com/2022/04/05/qOWMz8.png) ### 完工 <<>>以上步骤基本配置好了CI/CD,实际的工作流程如下: 1. 用户推送代码到github。 2. github携带secret,访问`http://yourip:8080/github-webhook/`。 3. jenkins收到请求,开始执行构建命令,构建完成后,`dist/`文件夹被复制到`/data/www/blog/`。 4. 此时`index.html`等文件已经改变,网站已更新,用户访问网址可看到最新的构建。 >-(grey: 测试是偶尔会卡死,1C2G的服务器,要关掉内存大户mysql,才能带得动jenkins编译)-
输入密码
取消
确认