使用github的pages配合action自动部署vue项目

news2024/11/23 23:44:05

如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。

GitHub 做了一个官方市场,可以搜索到他人提交的 actions。另外,还有一个 awesome actions 的仓库,也可以找到不少 action。

node项目基本都可以参考github官网:构建和测试 Node.js - GitHub Docs

GitHub Actions的基本概念(What)

  • workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。

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

  • step(步骤):每个 job 由多个 step 构成,一步步完成。

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

在本地项目创建 Github Actions 的配置文件:workflow 工作流文件。

  • Github 识别到配置文件后,会自动执行配置中的工作流。
  • 配置文件存放在代码才能够库的 .github/workflows 目录。
  • workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀统一为 .yml
  • 创建 .github/workflows/ci.yml 文件,复制 example 示例代码,并进行调整。
  • 创建一个分支gh-pages,用于发布的时候用
# 以下以一个构建vue项目的yml文件为例子
name: CI

on:
    push:
        branches:
            - main # 这里只配置了main分支,所以只有推送main分支才会触发以下任务
jobs:
    build-and-deploy:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v3
            - name: Use Node.js
              uses: actions/setup-node@v3
              with:
                  node-version: "14.x"
            - run: node -v
            - run: npm install
            - run: npm run build
            - name: Deploy # 部署
              uses: JamesIves/github-pages-deploy-action@v4.3.3
              with:
                  branch: gh-pages # 部署后提交到那个分支
                  folder: dist # 这里填打包好的目录名称

二级目录访问问题

  • 当前配置,会在 master 分支有文件 push 推送时触发工作流任务
  • 任务会在 ubuntu-latest 环境中执行
  • 先将 BASE_BRANCH(master) 分支下的代码 checkout
  • 然后运行构建脚本 BUILD_SCRIPT (npm install && npm run build
  • 然后将 FOLDER(dist)目录下的文件,全部 push 推送到 BRANCH(gh-pages)分支
  • 最后在项目 Settings 中配置 Github Pages 的 Source 后,通过生成的地址访问。

但是访问地址是一个二级路径(/仓库名称)。

而打包后的文件 dist/index.html 中引用资源的路径是在根目录,此时会访问不到。

例如:

<link href=/css/app.47edb1b2.css rel=preload as=style>

解决办法:配置 vue ,指定打包后的资源访问路径

// vue.config.js
module.exports = {
  outputDir: 'dist',
  publicPath: process.env.NODE_ENV === 'production' ? '/仓库名称/' : '/'
}

打包后结果

<link href=/仓库名称/css/app.47edb1b2.css rel=preload as=style>

提交代码 & 配置 GITHUB PAGES

提交代码后,GitHub 只要发现.github/workflows目录里面有.yml文件,就会自动运行该文件。

查看 Actions,及进度:

在项目 Settings 中配置 GitHub Pages,指定创建的 gh-pages 分支。 

保存后,会显示要访问的地址: 

 点击visit site,就可以访问到网站了:cv-report

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

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

相关文章

安全研究 # 课题:二进制成分分析(Binary SCA)

本文参考多篇文章写作而成&#xff0c;出处在文末注明(本文在课题开展过程中长期保持更新)。 二进制成分分析 SCA&#xff08;Software Composition Analysis&#xff09;软件成分分析&#xff0c;通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、…

奶茶果茶饮品店数字化转型| 奶茶店小程序 | 餐饮外卖系统

奶茶/果茶/饮品店里总是容易聚集大量年轻消费者&#xff0c;尤其品牌开新店或搞促销&#xff0c;往往会排很长的队伍&#xff0c;而茶饮店也会根据季节推出相应的新品或冷热饮品&#xff0c;以保证消费者在任何时候都能喝到应季的饮品。 年轻人是奶茶饮品店的主要消费者&#x…

第九章 webpack5高级优化——提升开发体验

之前我们所配置的webpack打包出来的文件在浏览器里面进行调试&#xff0c;是非常困难的。 查看打包出来的js文件&#xff1a; /** ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").* This devtool is neither m…

SpringCloud全系列知识(6)——RabbitMQ(消息队列)

消息队列&#xff08;MQ&#xff09;—RabbitMQ 一 初识MQ 1.同步通信与异步通信 1.同步通信的问题 同步调用的优点在于时效性高&#xff0c;可以立即得到结果 微服务之间基于Feign的调用属于同步方式&#xff0c;存在一些问题 耦合性&#xff1a;业务较多时&#xff0c;扩展…

分布式数据库与集中式数据库的差异

第一章&#xff1a;分布式数据库与集中式数据库的差异 1. 数据库是核心的IT基础设施 • 互联网业务增长&#xff0c;带动核心系统升级 • 核心系统引入数据库分布式与云化改造&#xff0c;支撑横向平滑扩展 • 5G规模推广&#xff0c;带动IT系统升级 • 5G具备大带宽和超低延时…

基于java+springboot+mybatis+vue+mysql的企业客户信息反馈平台

项目介绍 企业客户信息反馈平台能够通过互联网得到广泛的、全面的宣传&#xff0c;让尽可能多的用户了解和熟知企业客户信息反馈平台的便捷高效&#xff0c;不仅为客户提供了服务&#xff0c;而且也推广了自己&#xff0c;让更多的客户了解自己。对于企业客户信息反馈而言&…

小蓝本 第一本 《因式分解技巧》 第六章 二元二次式的分解 笔记(第六天)

小蓝本 第一本 《因式分解技巧》 第六章 二元二次式的分解 笔记&#xff08;第六天&#xff09;前言二元二次式的分解研究对象类型普通二元二次式基本形式分解方法总体总结——长十字相乘注意三元齐次式基本形式分解方法总体总结——长十字相乘注意提示习题6题目题解前言 今天…

【数据库】MySQL和Navicate安装和使用

MySQL和Navicate安装使用MySQLNavicate使用数据库MySQL 1、下载 可以考虑在官网下载或者在其它途径获取MySQL https://www.mysql.com/ download-》选择免费版或者其他版本-》选择系统和版本号-》根据需要下载 MySQL的Windows安装版只提供 32 位了 2、运行安装文件 可以选择…

基于51单片机的交通信号灯系统设计

功能&#xff1a; 十字路口交通灯控制程序&#xff1a; 正常时&#xff0c;EW方向计时60s&#xff0c;SN方向计时40s 若按时间加按键&#xff08;Add_Button&#xff09;按钮&#xff0c;EW、SN方向各加5s&#xff0c;不可大于99s&#xff0c;79s 若按时间减按键&#xff08;R…

全网最新的Fiddler(3):fiddler界面工具栏介绍

fiddler界面工具栏介绍 &#xff08;1&#xff09;WinConfig&#xff1a;windows 使用了一种叫做“AppContainer”的隔离技术&#xff0c;使得一些流量无法正常捕获&#xff0c;在 fiddler中点击 WinConfig 按钮可以解除这个诅咒&#xff0c;这个与菜单栏 Tools→Win8 Loopback…

【Flutter 组件】003-基础组件:按钮

【Flutter 组件】003-基础组件&#xff1a;按钮 文章目录【Flutter 组件】003-基础组件&#xff1a;按钮一、ElevatedButton 悬浮按钮1、概述2、构造方法3、示例代码示例运行结果二、TextButton 文本按钮1、概述2、构造方法3、示例代码示例运行结果三、OutlinedButton 边框按钮…

本地搭建xxl-job服务及连接验证

1、本地搭建xxl-job服务 1.1、使用git下载https://github.com/xuxueli/xxl-job.git代码 1.2、使用idea打开下载的项目&#xff0c;切换2.2.0分支 1.3、 源码主要包括3部分&#xff0c;admin模块是控制台的 core包是核心包&#xff0c;包括一些调度的逻辑等&#xff0c;项目中…

负荷预测|一种改进支持向量机的电力负荷预测方法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f4dd;目前更新&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;电力系统相关知识&#xff0c;期刊论文&…

[附源码]Python计算机毕业设计SSM基于的防疫隔离服务系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

从Qt 4到Qt 5(一)Qt 5.2安装、程序迁移和发布

导语 Qt 5的第二个重大版本Qt 5.2的beta版终于发布了&#xff0c;Qt 5.2是官方一再强调开发Android要使用的版本。经过了近一年的等待&#xff0c;这次终于可以完成夙愿&#xff0c;继续更新Qt系列教程了。在后面的教程中会尽量涉及大家经常问到、急需解决的问题&#xff0c;也…

YOLOV7 目标检测模型调试记录

前言 YOLO系列在目标检测领域可谓名声赫赫&#xff0c;其性能表现不俗&#xff0c;如今其已经更新到了YOLOV7版本&#xff0c;今天便来一睹其风采。 博主之前只是对YOLO算法的原理一知半解&#xff0c;并未实验&#xff0c;因此并不熟练&#xff0c;因此&#xff0c;借此机会来…

【JavaSE成神之路】一文洞悉Java的方法

哈喽&#xff0c;我是兔哥呀&#xff0c;今天就让我们继续这个JavaSE成神之路&#xff01; 这一节啊&#xff0c;咱们要学习的内容是Java语言的方法。 目录 1.什么是Java方法 2.快速入门Java方法 3.如何调用Java方法 4.关于Java方法重载这件事 作业 1.什么是Java方法 Jav…

补遗: CS61a

补遗&#xff1a; CS61a 通过“圣经”《SICP》 了解到这门课。SCIP读着有点困难&#xff0c;想通过课程的引导。但是这个课程要比书基础很多&#xff0c;就当对计科学习的回顾和补遗了。本笔记也会在我读完 SICP 后更新。 课程地址&#xff1a;CS 61A Fall 2022 参照原书目录…

第52篇 Qt Quick简介

导语 在上一篇我们已经安装好了Qt 5.5&#xff0c;现在正式开始学习Qt5中全新的Qt Quick编程。Qt Quick对于大部分人来说是一个全新的概念&#xff0c;对这样一个全新的东西要怎样开始学习呢&#xff1f;在没有专业书籍&#xff08;当然&#xff0c;《Qt 5编程入门》现在已经出…

java计算机毕业设计ssm在线学习系统的设计与开发3nnzq(附源码、数据库)

java计算机毕业设计ssm在线学习系统的设计与开发3nnzq&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&a…