Github Action 自动部署更新静态网页服务

本文首发于 Anyeの小站,点击跳转 获得更优质的阅读体验

前言

贴一段胡话

|50%x50%

在用过 应用:静态网页服务 之后,事实证明:

|50%x50%
总而言之,自动化是一个很令人着迷的东西,摆脱重复繁琐的工作,解放了双手的同时更是善待了自己。

简介

本文将会以 Github Action 结合 Ryan 大佬 的 Halo 插件 应用:静态网页服务 来实现自动将 Github 上的开源项目 CorentinTh/it-tools 自动更新同步部署。

原理

  1. Fork 原项目,有微修需求的在 Fork 后的项目中做出修改
  2. Fork 的项目添加 Upstream Sync · Actions · GitHub 这一 Action,该 Action 可以实现同步自己的分支和上游分支,并输出一个是否有新提交的变量 has_new_commits 供我们使用,使用 corn 计划任务实现定时查询更新。
  3. 为项目添加 Actions,在 has_new_commits 或者 commits 或者手动触发的时候执行构建推送(按需添加)。

快速使用(以 it-tools 项目为例)

Fork 我已经修改好的项目 Anyexyz/it-tools ,然后按照 此处 操作。

实现(以 it-tools 项目为例)

Fork 项目

点击 CorentinTh/it-tools 直达。

对项目源码进行修改

在这里我对项目做出修改:

  • (必要) 修改项目的 web 访问路径为 /tools

vite.config.ts:19process.env.BASE_URL ?? '/'; 改为 process.env.BASE_URL ?? '/tools';

  • 修改项目的默认访问语言为中文:

src/plugins/i18n.plugin.ts:8en 改为 zh

  • 其他个性化修改

添加工作流

Deploy to Halo

用于构建并部署到 Halo 静态网页服务。

name: Deploy to Haloon:push:branches: [main]repository_dispatch:types: [deploy]workflow_dispatch:jobs:deploy:runs-on: ubuntu-lateststeps:- name: Checkoutuses: actions/checkout@v4- uses: pnpm/action-setup@v3with:version: 8- uses: actions/setup-node@v4with:node-version: '20'cache: 'pnpm'- name: Install dependenciesrun: pnpm install- name: Buildrun: pnpm build- name: Deploy to Halorun: |npx halo-static-pages-deploy-cli deploy -e ${{ secrets.ENDPOINT }} -i ${{ secrets.ID }} -t ${{ secrets.PAT }} -f dist

我在这里添加了三个触发条件:

  • 响应 push 事件到 main 分支。
  • 响应 repository_dispatch 事件,类型为 deploy
  • 手动触发。
Upstream Sync

用于同步上游 commits 并检查是否有更新。

name: Upstream Syncpermissions:contents: writeissues: writeactions: writeon:schedule:- cron: '0 * * * *' # 每小时执行一次workflow_dispatch:    # 手动触发jobs:sync_latest_from_upstream:name: Sync latest commits from upstream reporuns-on: ubuntu-latestif: ${{ github.event.repository.fork }}steps:- uses: actions/checkout@v4- name: Clean issue noticeuses: actions-cool/issues-helper@v3with:actions: 'close-issues'labels: '🚨 Sync Fail'- name: Upstream Syncid: syncuses: aormsby/Fork-Sync-With-Upstream-action@v3.4.1with:target_sync_branch: maintarget_repo_token: ${{ secrets.GITHUB_TOKEN }} # 自动生成的 GitHub token,无需手动设置upstream_sync_repo: CorentinTh/it-toolsupstream_sync_branch: maintest_mode: false- name: New commits detected actionif: steps.sync.outputs.has_new_commits == 'true'uses: actions/github-script@v7.0.1with:script: |github.rest.repos.createDispatchEvent({owner: context.repo.owner,repo: context.repo.repo,event_type: 'deploy'})- name: Sync checkif: failure()uses: actions-cool/issues-helper@v3with:actions: 'create-issue'title: '🚨 同步失败 | Sync Fail'labels: '🚨 Sync Fail'body: |由于上游仓库的 workflow 文件变更,导致 GitHub 自动暂停了本次自动更新,你需要手动 Sync Fork 一次

触发条件:

  • 每小时自动执行一次
  • 手动触发

检测新的提交

- name: New commits detected actionif: steps.sync.outputs.has_new_commits == 'true'uses: actions/github-script@v7.0.1with:script: |github.rest.repos.createDispatchEvent({owner: context.repo.owner,repo: context.repo.repo,event_type: 'deploy'})

如果检测到有新提交,这一步使用 actions/github-script 动作触发一个名为deploy 的事件,用于调用 Deploy to Halo 进行部署。

使用

创建一个静态网页服务

在已经安装 应用:静态网页服务 插件的前提下,添加一个静态网页服务,目录填写 tools (与 Github 项目配置相同)

|50%x100%

创建后会生成一个 ID ,保存它。

申请个人令牌

在 Halo 的 UC 页申请一个 个人令牌 ,权限选择 静态项目 - 项目资源上传

|50%x50%

保存该令牌。

Github 仓库配置

在该仓库的 Github Setting 下找到 Secrets and variables ,为 Actions 提供变量,添加 Repository secrets ,如下:

NameSecretExample
ENDPOINTHalo API endpointhttps://demo.halo.run
IDStatic Page IDproject-FRAuW
PATPersonal access tokenpat_abcd

保存,可以通过手动触发的方式来测试是否可用。

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

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

相关文章

MES:连接计划与执行的桥梁

想象一下,你的企业拥有一份完美的生产计划,但如何将这份计划准确无误地转化为实际生产中的每一步操作?这就是MES大展身手的地方。MES作为ERP(企业资源计划)与车间自动化控制之间的桥梁,确保生产计划能够顺畅…

校准报告可以引用数据与加盖CNAS章吗?

在咨询校准机构在给他们出具校准报告/证书时,是否可以引用数据,引用数据部分是不是可以加盖CNAS章? 首先,了解一下报告中带CNAS的含义:CNAS-CL01:2018 文件第一章中提出“本准则规定了实验室能力、公正性以及一致运作的…

超越单兵作战:多智能体 Multi-Agent System (MAS)

超越单兵作战:多智能体 Multi-Agent System (MAS) Multi-Agent System 是指一个系统中有多个智能体同时工作的情况。在这样的系统中,每个智能体都具有一定程度的自主性,可以独立执行任务、做决定,并且能够与其他智能体进行交互&a…

为什么贷款都看大数据信用?怎么查大数据报告?

在当今数字化时代,大数据的应用已经深入到各个领域,其中金融行业尤为突出。很多朋友都有疑问,为什么贷款总会查自己的大数据信用?去哪里查?本文就为大家详细的分析一下,一起去看看吧。 一、贷款查大数据信用的几个原因&#xff…

哪些行业更需要TPM管理咨询公司?

当下,TPM(全面生产维护)作为一种旨在提高设备效率、降低维护成本的管理理念,已经被越来越多的行业所认可和采纳。然而,不同行业因其特性和需求的不同,对TPM管理咨询公司的需求也各有侧重。下面将探讨哪些行…

3年经验的B端产品经理,应该是什么水平?

问你一个问题:你觉得3年经验的B端产品经理,应该是什么水平?很多朋友可能也没有仔细想过,自己3年后应该达到一个什么水平?能做什么体量的业务?要能拿多少薪资? 前几天和一个B端产品经理聊天&…

二手市场遗落的上古神器:蜗牛星际NAS J1900和Think Pad X230的三代超值CPU

二手市场有几件神器,比如蜗牛星际NAS套件,从2019年到现在,价格一直稳定小幅攀升,彻底打破了电脑产品价格连年下降的常规印象。 Think Pad X230配置的三代CPU,性能吊打4代、5代CPU,一直到7代,才被…

Codeforces Round 956 F. array-value 【01Trie查询异或最小值】

题意 给定一个非负整数数组 a a a 对每个长度至少为 2 2 2 的子数组&#xff0c;定义其权值为&#xff1a;子数组内两两异或值最小值 即 b ⊂ a [ l , r ] , w ( b ) min ⁡ l ≤ i < j ≤ r { a i ⨁ a j } b \subset a[l, r], \quad w(b) \min_{l \leq i < j \le…

WPF的UI布局

WPF 的 UI 布局 XAML的优点 ui和动画更专业-好用 简单易懂&#xff0c;结构清晰-易学 使设计师直接参与软件开发&#xff0c;随时沟通无需二次转化-高效 真正实现了UI和逻辑的剥离(ui集中在ui层、逻辑代码集中在程序逻辑层&#xff0c;形成高内聚低耦合的结构) XAML是一种…

Paimon下载使用和基础操作说明

简介 Apache Paimon 是一种湖格式&#xff0c;支持使用 Flink 和 Spark 构建实时湖仓一体架构 用于流式处理和批处理操作。Paimon创新性地将湖格式与LSM&#xff08;Log-structured merge-tree&#xff09;相结合 结构&#xff0c;将实时流式更新引入 Lake 架构。 Paimon提供以…

AGE agtype 简介

AGE 使用一种名为 agtype 的自定义数据类型&#xff0c;这是 AGE 返回的唯一数据类型。agtype 是 Json 的超集&#xff0c;也是 JsonB 的自定义实现。 简单数据类型 Null 在Cypher中&#xff0c;null用于表示缺失或未定义的值。概念上&#xff0c;null表示“缺失的未知值”&…

Python数据处理之高效校验各种空值技巧详解

概要 在编程中,处理空值是一个常见且重要的任务。空值可能会导致程序异常,因此在进行数据处理时,必须确保数据的有效性。Python 提供了多种方法来处理不同数据对象的空值校验。本文将详细介绍如何对Python中的各种数据对象进行空值校验,并包含相应的示例代码,帮助全面掌握…

力扣 203反转链表

思路 用cur->next指向pre,把链表倒转 cur后移&#xff0c;cur指向原链表的下一个 注意用tmp存储原链表中cur的后一个 class Solution { public: ListNode* reverseList(ListNode* head) { ListNode *cur head; ListNode *pre nullptr; ListNode *tmp; while (cur ! nul…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验18 边界网关协议BGP

一、实验目的 1.验证边界网关协议BGP的作用&#xff1b; 2.学习在思科路由器上该协议的使用方法。 二、实验要求 1.使用Cisco Packet Tracer仿真平台&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&#xff0c;完成对应实验。 三、实验内容 1.构建网络拓扑&#xff1b; …

在小红书用AI做壁纸号,矩阵起号爆卖10000+(详细操作教程)

壁纸号领域一直是一个充满机遇的蓝海项目&#xff0c;由于始终有人对壁纸感兴趣&#xff0c;这种需求永不消逝。 随着AI绘画技术的出现&#xff0c;壁纸的创作更加便捷&#xff0c;不需要自己到处无版权地搬运或者自己动手画&#xff0c;更无需操心版权问题。 零成本、易操作…

羊大师:暑期不“胖”秘籍:羊奶滋养,细嚼慢咽是关键!

夏日炎炎&#xff0c;假期悠长&#xff0c;如何在享受悠闲时光的同时&#xff0c;保持轻盈体态&#xff0c;成了许多人心中的小秘密。今天&#xff0c;就让我们一起揭秘暑期不“胖”的秘籍&#xff0c;让羊奶的滋养与细嚼慢咽的智慧&#xff0c;成为你美丽夏日的守护神。 羊奶轻…

收银系统源码-【满额立减】功能介绍

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

[AI 大模型] Meta LLaMA-2

文章目录 [AI 大模型] Meta LLaMA-2简介模型架构发展新技术和优势示例 [AI 大模型] Meta LLaMA-2 简介 Meta LLaMA-2 是 Meta 推出的第二代开源大型语言模型&#xff08;LLM&#xff09;&#xff0c;旨在为研究和商业应用提供强大的自然语言处理能力。 LLaMA-2 系列模型包括从…

RSRS研报复现——年化21.5%,含RSRS标准分,右偏标准分的Backtrader指标计算(代码+数据)

原创文章第583篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 继续Backtrader&#xff0c;今天讲讲指标扩展。 作为规则型的量化框架&#xff0c;指标是非常重要的元素&#xff0c;它是策略的基础。 我们来扩展一个经典的指标&#xff0c;RSR…

ESP-NOW无线通信

ESP-NOW无线通信 ESP-NOW无线通信协议简介ESP-NOW单向通信ESP-NOW双向通信ESP32的MAC地址总结 ESP-NOW无线通信协议简介 ESP-NOW 是由Espressif开发的基于数据链路层的无线通信协议&#xff0c;它将五层 OSI 上层协议精简为一层&#xff0c;数据传输时无需依次经过网络层、传输…