github使用workflow工作流git push后自动打包部署github pages

news2024/9/23 9:24:26

workflows介绍

根目录新建.github/workflows/docs.yml

.github/workflows/ 目录是用于存放 GitHub Actions 工作流程文件的目录,该目录的文件名必须以 .yml 或 .yaml 为后缀名,否则 GitHub 将无法识别该文件为工作流程文件。这些工作流程文件可用于自动化执行项目中的各种任务,例如构建、测试、部署等。

工作流程文件是 GitHub Actions 的核心组成部分之一,可以帮助开发人员自动化执行各种任务,从而提高生产力、加速开发流程、提高代码质量等。

name: Docs

on:
  push:
    branches:
      - master
    paths:
      - src/**
  pull_request:
    paths:
      - src/**
  workflow_dispatch:
    branches:
      - master
    inputs:
      deploy:
        description: Deploy ?
        required: true
        default: false
        type: boolean

jobs:
  docs:
    name: Docs
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: Install pnpm
        id: pnpm-install
        uses: pnpm/action-setup@v2
        with:
          version: 7
          run_install: false

      - name: Get pnpm store
        id: pnpm-store
        shell: bash
        run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

      - name: Setup pnpm cache
        uses: actions/cache@v3
        with:
          path: ${{ steps.pnpm-store.outputs.STORE_PATH }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: ${{ runner.os }}-pnpm-store-

      - name: Install dependencies
        run: pnpm i --frozen-lockfile

      - name: Build docs
        run: pnpm run build

      - name: Deploy docs
        if: ${{ github.event_name == 'push' || inputs.deploy }}
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: dist

这是一个 GitHub Actions 的工作流程文件,用于在项目中自动化构建和发布文档。以下是文件中包含的主要部分:

name:定义工作流程名称为 “Docs”。

on:定义工作流程触发条件,包括在 master 分支上推送或合并 Pull Request 时构建,以及手动触发的工作流程。

jobs:定义工作流程中的工作。

docs:定义一个名为 “docs” 的工作,用于构建和发布文档。

runs-on:定义使用的操作系统为 ubuntu-latest。

steps:定义构成工作流程的一系列步骤。

Checkout:将代码检出到工作目录。

Setup Node.js:安装 Node.js 运行时环境。

Install pnpm:安装依赖管理工具 pnpm。

Get pnpm store:获取 pnpm 仓库路径并存储到环境变量 GITHUB_OUTPUT 中。

Setup pnpm cache:使用 GitHub Actions 缓存功能设置 pnpm 缓存。

Install dependencies:安装项目依赖。

Build docs:构建文档。

Deploy docs:发布文档到 GitHub Pages 上,前提是代码已经推送到 master 分支或手动触发工作流程,并且在输入参数中指定了 deploy=true。

uses:使用的 GitHub Actions 功能,包括代码检出、安装 Node.js、安装 pnpm、缓存、部署到 GitHub Pages 等。这些功能是通过 GitHub Actions Marketplace 中的 Action 进行实现的。

使用github pages

上方工作流,会创建一个gh-pages分支,选择该分支作为github pages使用的分支即可,以后只要更新src目录下的代码并git push推送,github就会自动打包部署项目到github pages上
在这里插入图片描述

工作流常见报错:工作流缺乏权限

如果没有写入权限的话,工作流是不能正常创建gh-pages分支
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488746.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

速锐得基于能源油气生产智能监控的物联网应用

自2016年速锐得基于商用车国六环保排放监控管理开发以来,我们同时也接触了很多涉及商用车领域的深入项目,包括了大庆油田、山东能源、兖矿集团、陕北矿业等多家能源巨头在数字化、科技、无线远程控制、监控管理、生产效能等方面的智能化方向的趋势。 就目…

MySQL 字段为 NULL 的5大坑,大部分人踩过

数据库字段允许空值(null)的问题,小伙伴你遇到过吗? 在验证问题之前,我们先建一张测试表及测试数据。 构建的测试数据,如下图所示: 有了上面的表及数据之后,我们就来看当列中存在 NULL 值时,究…

基于RGB-D的6D目标检测算法

基于RGB-D的6D目标检测算法 本文参考了ITAIC的文章 A Review of 6D Object Pose Estimation 概览 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eQX8ke6j-1683188966051)(https://mezereon-upic.oss-cn-shanghai.aliyuncs.com/uPic/image-20230420…

如何理解信息化、数字化和智能化的概念?一文给你解惑!

如何理解信息化、数字化和智能化的概念? 前两年流行“信息化”,网上铺天盖地都是关于“信息化”的文章,这两年开始流行起“数字化”,于是铺天盖地都是“数字化”的文章,最近又开始大谈“智能化”...... 但点开那些文…

常见的5种项目管理问题类型

项目管理的5大影响素:时间、范围、成本、风险、质量。项目经理需要对这些因素进行均衡考量,并根据需要略有侧重,进行整体把握,即我们常说的均衡型管理风格。而忽略任何一因素,都会对项目产生极大影响。 常见的项目管理…

医院导诊图怎么做?目前比较好用的医院导航地图是哪一款?

现在很多的大医院,不只是越建越高,面积也越来越大,同时医院内部按照门诊、住院、放射等不同功能划分的区域也是越来越多,走进这些“超级医院”就像走进了迷宫一样,如何促使病患走进医院后,能迅速找到要去的…

19C RAC主库 to RAC备库搭建adg报错ORA-16047(修改19C RAC DB_UNIQUE_NAME )

文章目录 前言一、问题描述二、修改DB_UNIQUE_NAME1.查看集群配置2.将hip40实例从集群中移除3.修改db_unique_name4.将hip40dg实例添加到集群资源中5.重新启动实例 三、19C RAC 密码文件替换 前言 主库环境是19C RAC备库环境也是19C RAC,主库到备库做adg&#xff0…

移动端动态开发能力的由来和流派

移动端动态化的由来 “动态化”并不是最近几年才产生的名词,而是从从互联网诞生的初期,这个词就已经出现了。大家所认知的早期互联网,其实就是各种各类的“动态网站”,内容数据和页面外观都不是固定的,都是随着服务器…

Bash脚本中的Sleep命令到底有何妙用?

在编写Bash脚本时&#xff0c;有时需要在程序执行过程中加入一些等待时间&#xff0c;例如等待某个操作完成或等待某个进程退出。此时可以使用sleep命令来实现。 sleep命令可以让脚本暂停执行一段时间&#xff0c;其基本语法为&#xff1a; sleep <seconds>其中&#xf…

细数【SD-WEBUI】的模型:谁是最适合的模型从哪里找到它们

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;基础模型&#xff08;Stable-Diffusion模型&#xff09;&#xff08;1.1&#xff09;ChilloutMix&#xff08;仿真&#xff09;&#xff08;1.2&#xff09;BasilMix&#xff08;仿真&#xff09;&#xff0…

如何使用 Linux Cron Job 优化WP-Cron以获得更好的性能

在本教程中&#xff0c;我将向您展示如何通过在 Linux 上用 Crontab 替换默认的 WP-Cron 触发机制来优化 WordPress 性能。 WordPress 使用 WP-Cron 来运行计划任务&#xff0c;许多用户已经在使用。 但它的工作方式并不理想。 在每次页面加载时&#xff0c;WP-Cron 检查计划…

在Centos7上安装和配置canal

1. 在 MySQL 数据库中创建 Canal 账户并为其授权 在安装 Canal 前&#xff0c;你需要在 MySQL 数据库中创建一个用于 Canal 连接的账户&#xff0c;并为该账户授予必要的权限。 以下是在 MySQL 数据库中创建 Canal 账户并为其授权的步骤&#xff1a; 登录 MySQL 使用以下命令…

B019_子查询篇

2022-4-30 18:11:32 通过本章学习,您将可以: 描述子查询可以解决的问题。 定义子查询。 列出子查询的类型。 书写单行子查询和多行子查询 MEGER INTO的使用 WITH 子句🏆CHAPTER 12 Subqueries & Merge Statements子查询和合并语句 子查询——嵌套在另一个查询中的查…

MyBatis:使用代码整合

文章目录 MyBatis&#xff1a;Day 04框架1. 依赖&#xff1a;pom.xml2. 外部配置文件&#xff1a;db.properties3. 核心配置文件&#xff1a;mybatis-config.xml4. 实体类5. 接口&#xff1a;xxxMapper.java6. 实现类&#xff1a;xxxMapper.xml7. 测试 MyBatis&#xff1a;Day …

DTC 2023回顾丨基于数据复制技术的多写多读数据库集群解决方案

在不久前结束的2023 DTC数据技术嘉年华中国数据库创新论坛上&#xff0c;GBASE南大通用8s产品经理郭茁老师分享了GBase 8s《基于数据复制技术的多写多读数据库集群解决方案》。 今天带大家一同回顾下本次演讲。 海量数据的存储和运算是目前行业内面临的一个重要问题&#xff0…

真实logging的构建

import logging import os.path import timeimport colorlog from logging.handlers import RotatingFileHandlerdefault_formats {# 终端输出格式color_format: %(log_color)s%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]-%(levelname)s-[log-messge]: %(message)s,…

【Hydro】半图解法调洪演算步骤,附Python代码

说明 半图解法计算步骤如下: (1)根据水位&#xff5e;库容关系、水位&#xff5e;泄流关系以及计算时段等绘制辅助曲线&#xff1b; (2)确定起调水位 Z 1 Z_1 Z1​及相应的 q 1 q_1 q1​、 V 1 V_1 V1​计算各时段平均入库流量 Q p Q_p Qp​&#xff1b; (3)在水位坐标轴上确定…

使OpenGauss支持Python3存储过程

目录 一、概述 二、编译opengauss支持Python3存储过程 三、还有问题 一、概述 OpenGauss是可以支持以Python2、3编写存储过程的&#xff0c;但是这个功能默认不开启&#xff0c;想要这个功能要自己编译源码&#xff0c;目前这部分源码感觉不够成熟&#xff0c;还有一些问题&…

Linux必会100个命令(六十)curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具&#xff0c;可以说是一款很强大的http命令行工具。它支持文件的上传和下载&#xff0c;是综合传输工具。 curl选项比较多&#xff0c;使用man curl或者curl -h获取帮助信息。 -a/--append …

ClickHouse学习笔记(五):ClickHouse 副本与分片

文章目录 1、概述2、数据副本2.1、副本的特点2.2、副本的定义形式 3、ReplicatedMergeTree 原理解析3.1、数据结构3.1.1 ZooKeeper 内的节点结构3.1.2 Entry 日志对象的数据结构 3.2、副本协同的核心流程3.2.1、INSERT 的核心执行流程3.2.2、MERGE 的核心执行流程3.2.3、MUTATI…