使用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月前
GitHub和Gitee的基本使用和在IDEA中的集成
GitHub和Gitee的基本使用和在IDEA中的集成
24 0
|
1月前
|
数据采集 人工智能 Rust
『GitHub项目圈选周刊01』一款构建AI数字人项目开源了!自动实现音视频同步!
『GitHub项目圈选周刊01』一款构建AI数字人项目开源了!自动实现音视频同步!
170 0
|
1月前
|
网络协议 Linux Android开发
解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具
解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具
98 1
|
2月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
130 0
|
2月前
|
网络安全
github或gitee配置ssh
github或gitee配置ssh
21 0
|
数据可视化 Ubuntu Shell
|
1月前
|
人工智能 文字识别 异构计算
关于github开源ocr项目的疑问
小白尝试Python OCR学习,遇到报错。尝试Paddle OCR部署失败,Tesseract OCR在Colab误操作后恢复失败。EasyOCR在Colab和阿里天池Notebook成功,但GPU资源不足。其他平台部署不顺,决定使用WebUI或阿里云轻应用。求教OCR项目部署到本地及简单OCR项目推荐。
28 2
|
1月前
|
人工智能 自然语言处理 iOS开发
『GitHub项目圈选19』推荐5款本周 让人爱不释手 的开源项目
『GitHub项目圈选19』推荐5款本周 让人爱不释手 的开源项目
|
1月前
|
存储 Web App开发 人工智能
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
|
1月前
|
人工智能 物联网 机器人
『GitHub项目圈选17』推荐5款本周 火火火 的AI开源项目
『GitHub项目圈选17』推荐5款本周 火火火 的AI开源项目
174 1