手把手教你将dumi自动部署到github!
今天这篇文章手把手教你如何使用dumi搭建博客以及使用github actions实现自动部署,一条龙服务,走起💃!
🌈我的成果:预览地址
前期准备
下载node
请注意:需确保node版本是10.13或以上(官网要求的)
// 查看本地node版本,不符合的话,自行去node官网下载
$ node -v
v10.13.0
创建github仓库
由于最终都是要部署到github的,不妨直接在github创建仓库来存放代码
创建一个新的仓库,注意一下:
- 仓库权限需选择public,要不然不能免费部署到github,私有仓库部署是要收费的
- 不用勾选【Add a README file】,因为dumi的脚手架中自带README文件
拉取仓库代码
创建成功后,会跳到仓库代码的页面,我们复制一下ssh。
打开终端,进入自己想放项目的文件夹,执行以下命令:
$ git clone [ssh地址]
执行完之后,你会发现本地会多一个空文件夹。
搭建博客
由于我们搭建的是博客,只需要选择静态站点模式,进入上一步的那个文件夹,执行以下命令:
// 下载脚手架
$ npx @umijs/create-dumi-app
# or
$ yarn create @umijs/dumi-app
// 安装npm包
$ npm install
// 运行项目
$ npm run serve
执行完这些命令后,打开http://localhost:8080 ,就能看到博客最初的样子,后面的改造就看个人喜好啦!
自动部署
手动部署还是不方便,这个时候就需要用上github强大的Actions功能了,跟着我一步一步来吧!
第一步:创建脚本
在根目录下创建.github文件夹,在.github下创建workflows文件夹,在workflows下创建ci.yml文件(ci.yml的文件名可任意填写,只需要yml后缀即可)
.github > workflows > ci.yml
在ci.yml中写入以下内容:
# 项目名
name: dumi book test
# 只有在master分支发生push事件时触发
on:
push:
branches:
- master
# 工作流
jobs:
build-and-deploy:
runs-on: ubuntu-latest # 运行环境
steps:
# 拉代码
- name: Checkout code
uses: actions/checkout@v1
# 下载node,我这里指定了15.x,这个版本可随意,高于dumi规定的node版本即可
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 15.x
# 打包代码
- name: Build Project
run: |
npm install
npm run build
# 部署到github
- name: Deploy to Github
uses: JamesIves/github-pages-deploy-action@4.0.0
with:
branch: build # 打包的内容放到build分支下
folder: dist
ps:这里把打包后的内容放在build分支,是因为防止下次下载项目,把打包后的内容也下载下来了,放在build分支可以更好地作区分,且github也能拿到入口文件。
第二步:修改publicPath
要想github能正确拿到入口文件,需要在.umirc.ts
中配置正确的publicPath
,增加如下配置:
import { defineConfig } from 'dumi';
const repo = 'dumi-book-test'; // 项目名
export default defineConfig({
title: 'dumi-book-test',
mode: 'site',
devServer: {
port: 1998 // 自定义端口号
},
base: process.env.NODE_ENV === 'production' ? `/${repo}/` : '/',
publicPath: process.env.NODE_ENV === 'production' ? `/${repo}/` : '/',
// more config: https://d.umijs.org/config
});
这些改完后,push到github上,此时,github已经开始帮你打包部署了。
第三步:查看部署详情
点到Actions中可以看到部署详情,所有workflows里包含了自动触发的ci和手动触发的pages部署。
其中自动触发的workflows名称就是你的yml文件中定义的name。
看到绿色的对勾,说明发布成功了,每个步骤的详情都可以看到,如果报错了也可以很快的找到问题。
第四步:配置pages
我们到github的pages那里配置一下信息,由于yml配置的是打包完的内容更新到build分支,所以这里我们也需要选择build分支,后面那个就选择/root,选择完了之后,点击save。
github部署会慢一点,等大概1分钟,变成绿色了,就说明部署成功啦!
我们可以在build分支看到打包后的最新内容,以及更新时间:
结语
好啦,这篇文章到这里就结束了,你学会了吗?用了github Actions后发现,真香啊!有一点需要注意的是,如果你更新了master,但是页面内容没有变的话,要么是打包部署失败,要么就是缓存,github pages比较容易出现这个问题。
如果本篇文章对你有一点点帮助的话,用你的可爱的小手给我点个赞呗~
(ps:有问题的话欢迎交流👏)
转载自:https://juejin.cn/post/7103871313492017159