Featured image of post 使用 Coding DevOps 部署 Hugo

使用 Coding DevOps 部署 Hugo

前言

前段时间使用 Zeabur1部署网站,官方提前写好了很多打包指令,个人开发者只需要发布到托管仓库就会自动部署。

zeabur

一直以来个人项目都是手动部署的,要在腾讯云自动化部署,腾讯云也提供了简便的方法2,但是适配的应用很少,而且从按需付费变包年包月模式3,本来一个月 1 块不到,现在变成 15 块一个项目,一年下来基本和做活动的轻应用服务器价格差不多,不是很划得来

自己本来也有轻应用服务器,但是因为网站本身就是静态网站,需要自己手动部署,十分麻烦,外加轻应用服务器起步费用也高,除非做活动。

虽然网站已经部署在 Zeabur1,以后公司项目可能也会使用自动化部署,提前学习也有必要,腾讯云也有类型 CI/CD 自动化部署的工具4CODING DevOps

zeabur自动化部署流程

CODING DevOps

CODING DevOps4是以项目为单位管理的,它是这样描述自己的:

CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度

和大多数 CI/CD 工具一样,需要自己写好部署代码,我在腾讯云自己的社区找到几篇旧的文章5使用 CODING DevOps 部署 Serverless 应用使用Coding Devops+自动构建以及部署博客,基本有了个概念

使用 CODING DevOps 部署 Serverless 应用

CI/CD 流程,发布代码到托管平台,工具检查到代码更新并拉取更新,使用环境打包生产资料,并上传资料到指定服务器运行,实际上就是你自己打包手动部署的流程,复刻到工具里面,让工具帮你跑

怎么使用

总共这几个步骤

  • 初始化仓库
  • 准备打包环境
  • 拉取最新代码
  • 打包出生产资源
  • 打包资源
  • 链接服务器
  • 上传资源
  • 解压部署

是不是很像自己手动部署的步骤?

初始化仓库

首先要去注册一个账户,传送地址 CODING DevOps 注册地址

CODING DevOps注册地址

进入工作台,在左侧导航栏目中找到【项目】,点击进入

侧栏项目

在接下来的界面中右上角找到新建项目,并新建项目

新建项目

填写好项目内容,完成后悔自动跳转到项目内部

新建项目详情

然后接着在左侧找到【代码仓库】,详见下图

代码仓库

进入【代码仓库】后,这边的操作基本和gitee或者github一样了,自己新建个同步仓库,并且把代码上传好

代码仓库内部

需要新建一个【构建计划】,根据下图新建一个

构建计划位置

这边腾讯提供的模板没有合适的,需要自定义一个构建过程

自定义构建过程

先用默认的【Jenkinsfile 预览】,填写好自己的构建计划名称,并选择好代码仓库,选择静态配置的Jenkinsfile ,填写完成后滑动到底部点击【确认】,接下来就进入可视化的构建过程流水线

新建构建过程

初始化后的构建过程流程图

准备打包环境

【基础配置】中构建环境默认环境6是不适合Hugo的,详见参考76中默认环境预装SDK和命令行工具

我在找Hugo的Docker包/生产环境包,一下没找到,但是看到zeabur构建过程有相应的包,我就试着找他们是不是发布过

zeabur构建过程

 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Initializing builder ...

Cloning source code from git ...

╔══════════════════════════════ Build Plan ═════════════════════════════╗

 provider          static                                             

║───────────────────────────────────────────────────────────────────────║

 framework         hugo                                               

╚═══════════════════════════════════════════════════════════════════════╝

#1 [internal] load build definition from Dockerfile

#1 transferring dockerfile: 1.43kB done

#1 DONE 0.0s

#2 [internal] load metadata for dockerhub.zeabur.cloud/hugomods/hugo:exts

#2 DONE 3.1s

#4 resolve dockerhub.zeabur.cloud/hugomods/hugo:exts@sha256:6a9c2d89bd10357035ada8135b93bc0564f17f4f65e62a8d5d7253804e90f2bd 0.0s done

#3 [internal] load .dockerignore

#3 transferring context: 2B done

#3 DONE 0.0s

#4 [builder 1/4] FROM dockerhub.zeabur.cloud/hugomods/hugo:exts@sha256:6a9c2d89bd10357035ada8135b93bc0564f17f4f65e62a8d5d7253804e90f2bd

#5 transferring context: 2.95MB 0.1s done

#5 DONE 0.1s

#4 ...

#5 [internal] load build context

#4 [builder 1/4] FROM dockerhub.zeabur.cloud/hugomods/hugo:exts@sha256:6a9c2d89bd10357035ada8135b93bc0564f17f4f65e62a8d5d7253804e90f2bd

#4 DONE 0.3s

#4 [builder 1/4] FROM dockerhub.zeabur.cloud/hugomods/hugo:exts@sha256:6a9c2d89bd10357035ada8135b93bc0564f17f4f65e62a8d5d7253804e90f2bd

未完待续…可通过【关于】栏目里面的邮件催更呦~

参考