首页 > 其他分享 >从零用VitePress搭建博客教程(7) -– 如何用Github Actions自动化部署到Github Pages?

从零用VitePress搭建博客教程(7) -– 如何用Github Actions自动化部署到Github Pages?

时间:2023-10-24 09:45:24浏览次数:36  
标签:Github name workflow actions github Actions VitePress Pages

接上一节:从零用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/[email protected]
        # 自定义环境变量
        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

 

标签:Github,name,workflow,actions,github,Actions,VitePress,Pages
From: https://www.cnblogs.com/myboogle/p/17784015.html

相关文章

  • 自己找教学场景相关github目标识别代码研读(10.21~10.28)
    任务:1、解决上次老师问的一些问题?(1)上次老师提到F1得分,再总结一下:混淆矩阵TP:预测正例,实际正例(预测对)FN:预测负例,实际正例(预测错)FP:预测正例,实际负例(预测错)TN:预测负例,实际负例(预测对)精确率=TP/(TP+FP):预测为正例的那些数据里预测正确的数据个数(预测为正例的有多少预测对......
  • Ubuntu Hexo Github.io 自建博客站
    1.安装node/npm/hexo在nodejs官网下载Ubuntu的压缩包,解压tar-zcvfnode-v18.18.2-linux-x64.tar.xz设置全局变量,注意是把他从一个路径弄到另一个路径里,下面两个/usr前面都有空格sudoln-sf/root/node-v18.18.2-linux-x64/bin/node/usr/bin/sudoln-sf/root/node......
  • git 图形可视化工具GitHub Desktop 的安装及使用
    直接搜索GitHubDesktop 点进去下载: 下载完根据提示关联自己的github账号克隆一个仓库: 基于某分支新建分支  ......
  • 从零用VitePress搭建博客教程(6) -– 第三方组件库的使用和VitePress搭建组件库文档
    接上一节:从零用VitePress搭建博客教程(5)-如何自定义页面模板、给页面添加独有的className和使页面标题变成侧边目录?九、第三方组件库的使用我们经常看见UI组件库的文档,这里我们就用element-plus第三方组件库为例子,搭建组件库文档examples:作为组件库示例目录,我们以Button组件......
  • Programming abstractions in C阅读笔记:p181-p183
    《ProgrammingAbstractionsInC》学习第61天,p181-p183总结。一、技术总结1.linearsearchalgorithm2.lexicographicorder(字典顺序)3.binarysearchalgorithm(二分查找算法)/**1.二分查找也应用了递归的思想。*2.这里的代码只是demo*/#include<stdio.h>#incl......
  • 使用Github Copilot完成代码编写
    上篇文章,我们使用VSCode创建了T.Global解决方案和两个类库工程,接下来我们使用GithubCopilot完成代码编写先说以下业务需求:提供一个公共的本地化组件,支持对数字、货币、时间、日期、度量衡单位、排序的在不同区域下的处理。一、新建一个II18NService接口这里我们使用了以下P......
  • 65.初始化vitepress项目
    1.电脑本地需要安装node16+版本2.电脑本地安装pnpm3.本地创建一个文件夹,用于存放该项目,如:F:\资料整合\编程资料\编程项目\网页\sfisadmin\vitepress4.进入该文件夹5.初始化node工程:pnpminit 6.安装vitepresspnpmadd-Dvitepress 7.初始化vietepresspnpmexecvit......
  • 从零用VitePress搭建博客教程(5) - 如何自定义页面模板、给页面添加独有的className和
    接上一节:从零用VitePress搭建博客教程(4)–如何自定义首页布局和主题样式修改?上一节其实我们也简单说了自定义页面模板,这一节更加详细一点说明,开始之前我们要知道在vitePress中,.md的文件是可以直接编写vue的代码的。比如我们现在来自定义一个前端网址导航页面八、自定义一些......
  • Github Actions实现Spring Boot自动化部署(第二弹)
    GithubActions实现SpringBoot自动化部署(第二弹)前言​ 今天就来讲述一下如何使用GitHub结合Actions实现SpringBoot程序从提交代码到打包、容器化、部署全过程自动化。首先咱们得现有一个能够在本地运行的SpringBoot程序,并且在Github上拥有一个仓库。一、自动化部署1.1提交......
  • 企业级github api
    参考: GitHubAPIforJava–(kohsuke.org)依赖:<dependency><groupId>org.kohsuke</groupId><artifactId>github-api</artifactId><version>1.135</version></dependency> publicGithubClient(Stringaccess......