使用github actions,将私有仓库的构建文件发布到另一个公开仓库,并同步到gitee

简介: 使用github actions,将私有仓库的构建文件发布到另一个公开仓库,并同步到gitee

github actions

语法格式,编写自己的actions,会用到@actions/core用来和actions交互。

其实这些action的逻辑也不是非常难,都是一些本地的读写操作,没有什么黑科技,可以认为GitHub在执行这些action的时候,会分配一台真正的物理机来执行这些action的代码,至于和GitHub仓库的交互,都是通过api完成的。

需求

仓库A是不开源的,是我的项目源码,但是我想要将仓库A的build文件,上传到另外一个GitHub公开仓库B的main分支,同时仓库B的main分支已经设置为pages,这样就能方便别人访问和使用。

设置仓库B的pages

image.png

编写仓库A的actions文件
yaml
复制代码
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: install
        run: npm run installForce
      - name: pack web
        run: npm run ccp-pack
      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with: 
          personal_token: ${{ secrets.PERSONAL_TOKEN }} # 令牌
          publish_dir: ./web # 构建后的文件目录
          external_repository: tidys/bmfont-online # 仓库B,格式为:user/repo
          publish_branch: main # 仓库B的分支

我使用的是peaceiris/actions-gh-pages@v3,其他也尝试了,并不是很好用。

部署到其他仓库的配置里面,我使用的是person_token,文档上用的是ACTIONS_DEPLOY_KEY,没整明白怎么搞这个key,但是人家说person_token也支持,所以我就使用的是这个,并且人家也说了自己支持的token类型

配置person_token

生成token

点击头像/Settings,在左侧最下边找到Developer settings,选择Tokens (classic)/Generate new token

image.png

注意过期时间选择为不过期,并且追加repo的权限

image.png

此时会生成一个新的token,并且之后展示一次,记得保存,后续会使用到。

image.png

设置token

回到仓库A中,配置新的secrets

image.png

secret.name为PERSONAL_TOKEN,value就是刚刚生成的token值

image.png

验证

再次执行acions,如果一切顺利的话,如下图所示:

image.png

回到仓库B,可以看到仓库B已经被正确同步了

image.png

遇到的问题

github actions 报错nodejs /usr/bin/env: ‘node\r’: No such file or directory Error: Process completed with exit code 127.

因为我的nodejs cli是通过windows打包的,而actions使用Ubuntu,换成windows即可

在cc-plugin v2.1.26修复了该问题

同步到Gitee

发现会删除所有的文件,可以通过该选项规避,这也是通过看这个action的源码发现的逻辑。

vbnet

复制代码

keep_files: true

同步gitee使用的是gitee-pages-action,举例:

gitee的克隆地址为:git@gitee.com:tidys/bmfont-online.git

配置gitee的公钥,使用ssh-keygen生成SSH Key

GIThub仓库一共需要配置3个变量

  • GITEE_PWD:your password
  • GITEE_REPO: tidys
  • GITEE_RSA_PRIVATE_KEY: private key,也就是.ssh/id_rsa这个文件里面的内容,前提是需要将你本机的ras也配置到git仓库中。

readme有详细的参数介绍



目录
相关文章
|
3月前
|
开发工具 git 开发者
2024最简七步完成 将本地项目提交到github仓库方法
该文章提供了一个简洁的七步教程,指导用户如何将本地项目提交到GitHub仓库。
2024最简七步完成 将本地项目提交到github仓库方法
|
24天前
|
对象存储
一个通过 GitHub Action 将 GitHub 仓库与阿里云 OSS 完全同步的脚本
一种将 GitHub 仓库完全同步到阿里云 OSS 的方法。
|
1月前
|
JavaScript API 开发工具
使用GitHub Actions自动发布electron多端安装程序
使用GitHub Actions自动发布electron多端安装程序
34 8
利用 GitHub Actions 自动化你的软件开发流程
GitHub Actions 是由 GitHub 提供的自动化工具,可让你在仓库中触发和执行自动化工作流程,如自动运行测试和部署应用。其核心概念包括工作流程(定义在 YAML 文件中的一系列自动化步骤)、作业和步骤。本文将指导你如何设置和使用 GitHub Actions,并提供实用的自动化示例,帮助你提高开发效率和代码质量。通过简单的配置文件,你可以实现自动运行测试、部署应用甚至自动合并 Pull Requests。
利用 GitHub Actions 自动化你的软件开发流程
在现代软件开发中,自动化是提升效率与质量的关键。GitHub Actions 作为 GitHub 的强大自动化工具,允许你在仓库中自动执行多种任务,如测试、打包、部署代码及自动合并 Pull Requests。本文介绍了 GitHub Actions 的核心概念、设置方法及其实用示例,帮助你快速上手并优化开发流程。通过 YAML 文件定义的工作流程可显著提高工作效率和代码质量。
|
2月前
|
开发者
利用 GitHub Actions 自动化你的软件开发流程
在快速发展的软件开发环境中,自动化对于提升效率与质量至关重要。GitHub Actions 作为一款强大的工具,能帮助开发者实现从自动运行测试到部署应用等工作的自动化。本文详细介绍了 GitHub Actions 的核心概念、设置方法及实际应用示例,如自动测试、部署和合并 Pull Requests,助力提升开发流程的自动化水平。
|
2月前
|
Shell 网络安全 开发工具
Git,GitHub,Gitee&IDEA集成Git
Git提交项目到GitHub简洁版、版本控制、安装、常用命令、分支、团队协作机制、Github、Gitee远程仓库、IDEA集成Git、IDEA集成Github、IDEA集成Gitee
Git,GitHub,Gitee&IDEA集成Git
利用 GitHub Actions 自动化你的软件开发流程
GitHub Actions 是 GitHub 提供的自动化工具,可在仓库中触发和执行工作流程,包括自动运行测试、部署应用等。其核心概念包括工作流程(Workflow)、作业(Job)和步骤(Step),均定义在 YAML 文件中。本文将指导你如何设置和使用 GitHub Actions,并提供自动运行测试、部署应用及合并 Pull Requests 的示例,帮助提高开发效率和代码质量。
|
3月前
|
安全 网络协议 Shell
Github代码仓库SSH配置流程
这篇文章是关于如何配置SSH以安全地连接到GitHub代码仓库的详细指南,包括使用一键脚本简化配置过程、生成SSH密钥对、添加密钥到SSH代理、将公钥添加到GitHub账户以及测试SSH连接的步骤。
72 0
Github代码仓库SSH配置流程
|
3月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
62 0