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



目录
相关文章
|
5月前
|
开发工具 git C++
【够用就好002】外行第一次发布github项目仓库
#deepseek#自学 记录外行学习代码的历程 今天是上传自己的工具代码到github仓库,一直以来是伸手党克隆别人的项目,今天在deepseek的辅导下上传自己的内容。
|
1月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
62 0
|
3月前
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
785 11
|
4月前
|
开发工具 git
vscode推送项目到github仓库故障解决1
本文介绍了如何优雅解决本地仓库与远程仓库历史记录不一致的问题,并提供避免未来问题的最佳实践。核心在于理解问题根源(如历史记录差异和常见原因),采用推荐的解决方案(先本地初始化再关联远程仓库),并遵循一致的工作流程、团队协作规范及熟悉 Git 命令。通过强制推送或合并无关历史记录等方式处理现有冲突,同时养成良好习惯以预防类似问题。
|
3月前
|
人工智能 数据可视化 前端开发
自学软硬件工程师776天精简版github项目同步推送步骤
注意 这篇文章不是水内容的,虽然我之前也写过 github推送同步的内容。
GitHub:如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细攻略(图文教程)
GitHub:如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细攻略(图文教程)
GitHub:如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细攻略(图文教程)
|
Linux API 开发者
【专栏】掌握`curl`能提升开发效率和解决问题的能力
【4月更文挑战第28天】本文介绍了如何使用`curl`命令从GitHub下载文件。基础操作包括获取文件的克隆URL,打开终端输入`curl -O <file_clone_url>`,执行命令以下载文件。文章还提及了代理设置、认证和错误处理等高级应用,帮助开发者更高效地管理代码和资源。掌握`curl`能提升开发效率和解决问题的能力。
320 4
|
JavaScript 开发工具 git
Git 技术篇 - Github在项目分支里下载某个文件方法,Github项目里的单个js文件下载实例演示
Git 技术篇 - Github在项目分支里下载某个文件方法,Github项目里的单个js文件下载实例演示
515 0
Git 技术篇 - Github在项目分支里下载某个文件方法,Github项目里的单个js文件下载实例演示

热门文章

最新文章