使用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有详细的参数介绍



目录
相关文章
|
1月前
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
186 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
1月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
85 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
PeterCat 是一款开源的智能答疑机器人,能够自动抓取 GitHub 上的文档和 issue 构建知识库,提供对话式答疑服务,帮助开发者和社区维护者高效解决技术问题。
188 7
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
|
2月前
|
人工智能 前端开发 Linux
github是怎么用的,如何下载仓库
github是怎么用的,如何下载仓库
|
4月前
|
对象存储
一个通过 GitHub Action 将 GitHub 仓库与阿里云 OSS 完全同步的脚本
一种将 GitHub 仓库完全同步到阿里云 OSS 的方法。
|
5月前
|
Shell 网络安全 开发工具
Git,GitHub,Gitee&IDEA集成Git
Git提交项目到GitHub简洁版、版本控制、安装、常用命令、分支、团队协作机制、Github、Gitee远程仓库、IDEA集成Git、IDEA集成Github、IDEA集成Gitee
|
6月前
|
人工智能 算法 机器人
Github上5个实用的ChatGPT仓库
Github上5个实用的ChatGPT仓库
179 0
|
6月前
|
开发工具 git 开发者
2024最简七步完成 将本地项目提交到github仓库方法
该文章提供了一个简洁的七步教程,指导用户如何将本地项目提交到GitHub仓库。
2024最简七步完成 将本地项目提交到github仓库方法
|
数据可视化 Shell 持续交付
|
4月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
133 3

热门文章

最新文章