接上一节:从零用VitePress搭建博客教程(6) -– 第三方组件库的使用和VitePress搭建组件库文档

我们搭建完成vitePress后,那么接下来就是如何部署到线上服务器,这里使用Github Pages,免得自己购买服务器,当然你也可以自己购买服务器来部署(比如阿里云服务器)。

在部署之前,我们先简单了解下Github ActionsGithub Pages

一、基本概念认识

1、理解Github Actions

中文文档地址:https://docs.github.com/zh/actions

简单说,Github Actions就是GitHub官方提供的自动化(CI/CD)服务, 通过它可以完成自动化测试、集成、部署等操作。

它的优势有:

  1. 和GitHub集成更容易
  2. 支持复用其他人的基本片段

GitHub Actions的基本概念主要有以下几个:

workflow (工作流程):持续集成一次运行的过程就是一个 workflow,一个项目可以有多个workflow。

job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。

step(步骤):每个 job 由多个 step 构成,一步步完成,step 下有 name、uses、run、with 等,表示一个 action

action (动作):每个 step 可以依次执行一个或多个命令(action)。

注意点:
yml配置文件通常存放在项目中的.github/workflows 目录,每个workflow都是.github/workflows目录下的一个文件
workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀统一为 .yml。

如何执行部署的?

简单说就是,我们通过配置yml文件来执行,当提交代码到Github仓库后,就可以自动部署到Github Pages上去。

因为Github 识别到配置文件后,会自动执行配置中的工作流(主要看配置自动的情况)

yml 配置文件一些概念说明

name:  CI

on:
# 手动运行工作流程(workflow_dispatch 事件触发器配置后可以在actions下手动运行工作流)
workflow_dispatch:
push:
branches:
- master
jobs:
# jobs的id
build-and-deploy:
# 指定服务器的运行环境:最新版本ubuntu
runs-on: ubuntu-latest
steps:
# 使用actions/checkout@v4 库拉取代码到 ubuntu 上
- name: Checkout
uses: actions/checkout@v4 # 安装 pnpm
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8 # 打包成静态文件
- name: Build
run: pnpm install && pnpm build

我想大家看到上面的配置代码,基本就知道意思了,这里也简单说下

常用的字段及含义如下:

name :   workflow 的名称 , 如果省略该字段,默认为当前workflow的文件名

on:  指定触发workflow的条件,通常是一些事件触发器,比如:push,  workflow_dispatch、pull_request等

steps: 简单说就是一个步骤的集合(里面有多个小步骤),从上到下执行,它有几个相关的选项

  1. name:每个小步骤的名称(可自由定义)。
  2. uses:每个小步骤使用的 actions 库名称或路径,Github Actions 允许我们使用别人写好的 Actions 库。
  3. run:  每个小步骤要执行的 shell 命令。
  4. with: 配置actions的额外参数。

2、理解Github Pages

Github Pages简单说就是可以将我们托管在Github上的项目,免费发布为对外的公共网页,免去咱们花钱买服务器。

我们可以使用 GitHub Pages 来展示一些开源项目、博客等等。

下面开始说明如何去部署我们的博客站点

二、用Github Actions自动化部署到Github Pages

主要通过以下4个步骤完成部自动化署到

1、在Gtihub上创建仓库和相关分支

2、配置github pages

3、编写自动化部署yml文件

4、找到链接地址查看博客效果

1、在Gtihub上创建仓库和相关分支

我们在Github上新建一个仓库, 这里我的项目叫vitePress-projectmaster主分支上提交我们的源代码。

然后我们再新建一个分支叫deploy-pages,清空里面的内容,这个分支用于存放pnpm build打包后的代码。

2、配置Github Pages

到vitePress-project仓库 -> Settings -> Pages 去设置Pages关联的分支deploy-pages, 如图

3、编写自动化部署配置文件

有两种方法可以创建自动化部署文件

1、直接去github仓库/Actions下新建一个自动部署文件ci.yml(ci.yml名字可以自定义),然后修改内容即可

2、手动创建,如下所示

ci.yml配置内容如下

name: GitHub Actions Build and Deploy

on:
# 手动运行工作流程(workflow_dispatch 事件触发器配置后可以在actions下手动运行工作流)
workflow_dispatch: jobs:
build-and-deploy:
runs-on: ubuntu-latest #指定服务器的运行环境:最新版本ubuntu
steps:
# 使用actions/checkout@v4 库拉取代码到 ubuntu 上
- name: Checkout
uses: actions/checkout@v4
with:
# 根据网上资料查询此处可以设置为 false。https://github.com/actions/checkout
persist-credentials: false # 安装 pnpm
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8 # 设置node的版本
- name: Use Node.js
# 使用 actions/setup-node@v3 库安装 nodejs,with 提供了一个参数 node-version 表示要安装的 nodejs 版本
uses: actions/setup-node@v3
with:
node-version: '18.x'
cache: 'pnpm' # 打包成静态文件
- name: Build
run: pnpm install && pnpm build # 部署到GitHub Pages - 也就是将打包内容发布到GitHub Pages
- name: Deploy
# 使用别人写好的 actions去部署(将打包文件部署到指定分支上)
uses: JamesIves/github-pages-deploy-action@v4.3.3
# 自定义环境变量
with:
# 指定仓库:你要发布的仓库路径名
repository-name: msyuan/vitePress-project
# 部署到 deploy-pages 分支,也就是部署后提交到那个分支
branch: deploy-pages
# 填写打包好的目录名称路径,本项目配置在根目录
folder: dist

用到的相关插件地址:

https://github.com/actions/checkout

https://github.com/pnpm/action-setup/

https://github.com/actions/setup-node

https://github.com/JamesIves/github-pages-deploy-action

 因为我们上面配置的是手动去运行工作流,所以需手动去执行部署,如图所示

可以看到正在部署中….

4、找到链接地址查看博客效果

进入Settings -> Pages会看到博客链接地址:

预览效果:https://msyuan.github.io/vitePress-project/

同时打包后的代码也正常部署到deploy-pages分支上去了,到此已经完成部署工作

github项目地址:https://github.com/msyuan/vitePress-project

在线预览效果:https://msyuan.github.io/vitePress-project

原文地址:http://www.qianduan8.com/2072.html

从零用VitePress搭建博客教程(7) -– 如何用Github Actions自动化部署到Github Pages?的更多相关文章

  1. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)

    前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...

  2. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  3. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...

  4. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置

    前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的 ...

  5. Hexo搭建博客教程(1) - 安装环境与本地搭建

    前言 搭建个人博客一般有两种选择,一个是使用WordPress,但是需要将博客搭建在服务器上,不过搭建好后写文章方便,适合没有程序基础的人使用.另一个是使用Hexo,相对简洁高效,不需要服务器,既可以 ...

  6. Hexo+NexT(零):最全Hexo+Next搭建博客教程

    快速.简洁且高效的博客框架 有位大神说,喜欢写博客的人的人,折腾博客会经历三个阶段.找到一个免费空间,搭建一个博客,很欣喜,很有成就感,此为一阶段:受限免费空间各种限制,自己买空间和域名,实现对博客的 ...

  7. Hexo搭建博客教程(3) - 远程部署到GitHub Pages

    本章讲的是如何将本地的个人项目远程部署到 GitHub Pages,涉及到GitHub的项目仓库.Git的使用,以及Hexo的远程部署等. 1. 安装 hexo-deployer-git 插件 想要将 ...

  8. Hexo搭建博客教程(2) - 博客的简单个性化配置

    本章主要讲博客的个性化,譬如站点的基本配置(语言.头像.站点图标等).安装新的Hexo主题(NexT主题)以及主题的配置. 1. 修改站点配置 打开站点配置文件 ,找到: # Site title: ...

  9. 转载一遍比较好的,django2.1搭建博客教程

    非常感谢这位博主,找了几个星期终于找到了 https://www.dusaiphoto.com/article/article-detail/4/

  10. 用GitHub Pages搭建博客(五)

    本篇介绍GitHub Pages自定义域名 在用GitHub Pages搭建博客(二)中介绍到,默认的GitHub Pages域名就是仓库地址,即: 账号名.github.io 如果我们要使用自定义域 ...

随机推荐

  1. ArcMap镶嵌数据集的创建、数据导入与数据范围修改方法

      本文介绍基于ArcMap软件,建立镶嵌数据集(Mosaic Datasets).导入栅格图像数据,并调整像元数值范围的方法.   镶嵌数据集(Mosaic Datasets)是一种用以管理.显示. ...

  2. SaaS软件工程师成长路径

    背景 SaaS软件工程师的成长需要循序渐进,和SaaS业务一样有耐心.SaaS工程师需要在"业务"."技术"."管理"三个维度做好知识储备. ...

  3. Set_HashSet_TreeSet_小记

    Set接口:Set集合继承自Collection集合 Set:底层数据结构是一个哈希表,能保证元素是唯一的,元素不重复!它通过它的子实现了HashSet集合去实例化,HashSet集合底层是HashM ...

  4. MySQL到ClickHouse数据同步方案

    MySQL 同步到 ClickHouse的方案可以看下面的说明,选择合适最近的同步方法. 1. 对比结果概述 整体上,NineData(官网:www.ninedata.cloud )的数据复制功能在功 ...

  5. BigCode 背后的大规模数据去重

    目标受众 本文面向对大规模文档去重感兴趣,且对散列 (hashing) .图 (graph) 及文本处理有一定了解的读者. 动机 老话说得好: 垃圾进,垃圾出 (garbage in, garbage ...

  6. Maven配置私有仓库

    前言   当公司或个人具有自己独有的jar时,不想公开,一般就会放在自己的私有Maven仓库中,在项目中需要引用,此时就需要将公司私有仓库配置到maven当中,一般我们的maven配置的都是aliyu ...

  7. ls 和 du显示文件大小不一样

    查看当前文件系统的磁盘使用 df -k / Filesystem 1K-blocks Used Available Use% Mounted on /dev/nvme0n1p2 97844508 37 ...

  8. 2022-1-11 面板控件学习1 Canvas、WrapPanel、StackPanel、DockPanel、Grid

    Canvas WrapPanel 让控件横向排列 StackPanel 控件竖向排列 DockPanel 自由布局,LastChildFill防止最后一个控件自动填充满 Grid 使用*和2*可以分配 ...

  9. 2022-1-11 控件学习3 文本渲染、TabIndex、Border、Slider、ProgressBar、

    WPF文本渲染  TextOptions.TextFormattingMode:默认值Ideal大部分是好用的,但是非常小的文本使用Display渲染会好一些 TextRenderMode:使用抗锯齿 ...

  10. openssh傻瓜式一键自动化更新脚本(ubuntu系统)

    鉴于openssh升级太过麻烦,这里自制了一个openssh自动化升级脚本,以root权限一键运行脚本即可: sh openssh-update.sh 注意:这里只使用于ubuntu系统,centos ...