Please enable Javascript to view the contents

Github Action 同步gitee和github单个仓库

 ·  ☕ 3 分钟  ·  ✍️ YSL

入参

参数描述是否必传默认值
gitee-usernameGitee用户名-
gitee-passwordGitee密码-
gitee-repoGitee仓库(严格区分大小写)-
branch要部署的分支master
directory要部署的分支上的目录''
https是否强制使用httpstrue

示例

GitHub的仓库创建 .github/workflows/ 文件夹并且创建一个**sync.yml** 文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
name: Sync
 
 
on:
  push:
    branches: [ giteePage ]
 
 
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Sync to Gitee
      uses: wearerequired/git-mirror-action@master
      env:
          # 注意在 Settings->Secrets 配置 PRIVATE 
          SSH_PRIVATE_KEY: ${{ secrets.PRIVATE }}
      with:
          # 注意替换为你的 GitHub 源仓库地址
          source-repo: "git@github.com:username/username.github.io.git"
          # 注意替换为你的 Gitee 目标仓库地址
          destination-repo: "git@gitee.com:username/username.git"
 
 
    - name: Build Gitee Pages
      uses: yanglbme/gitee-pages-action@master
      with:
          # 注意替换为你的 Gitee 用户名
          gitee-username: username
          # 注意在 Settings->Secrets 配置 PASSWORD
          gitee-password: ${{ secrets.PASSWORD }}
          # 注意替换为你的 Gitee 仓库
          gitee-repo: username/username
          # 提交到gitee的github仓库的分支
          branch: giteePage

先使用 wearerequired/git-mirror-actionGitHub 仓库同步到 Gitee 仓库,再使用 yanglbme/gitee-pages-action 实现 Gitee Pages 的自动部署。

运行需要在 GitHub 项目的 Settings -> Secrets 路径下配置好 **PRIVATE **以及 PASSWORD 两个密钥。其中:

**PRIVATE **: 存放你的 id_rsa 私钥。PASSWORD: 存放你的 Gitee 账户密码。

1. 配置PRIVATE

  • 生成SSH密钥

    1
    
    ssh-keygen -t rsa -C "name"
    

    “name"是任意指定的标识

    • 获取公钥
    1
    
    cat ~/.ssh/id_rsa.pub
    
    • 绑定Gitee
  • 复制公钥,通过仓库主页个人图像下拉设置->SSH公钥添加公钥

    • 测试

      打开终端输入:

      1
      
      ssh -T git@gitee.com
      

      显示如下图则成功

      image-20210430222406658

  • 绑定Github

    复制公钥,通过仓库主页个人图像下拉Setting->SSH and GPG keys添加公钥

    • 测试

      打开终端输入:

      1
      
      ssh -T git@github.com
      

      显示如下图则成功

      image-20210430222851660

  • 配置

    • 获取私钥

      1
      
      cat ~/.ssh/id_rsa
      

      复制私钥,在仓库的Setting->Secrets路径下命名PRIVATE,Value添加私钥(记得复制全部内容)

2. 配置PASSWORD

在仓库的Setting->Secrets路径下命名PASSWORDValue添加**Gitee**账户密码。

如果一切配置正常,并成功触发 Gitee Pages Action ,我们可能会收到一封来自 Gitee 的告警邮件/站内信。放心,这是 GitHub Action 程序帮我们登录到 Gitee 官网,并为我们点击了项目的部署按钮。

FAQ

问题 1:遇到短信验证码导致无法自动部署,怎么解决?

因为 Gitee Pages Action 使用的是 GitHub 自家的服务器(美国),在这种情况下,当 Action 自动 帮我们登录 Gitee 的时候,会触发 Gitee 帐号异常登录告警,提示用户在非正常的 IP 地址登陆 Gitee,需要输入验证码。

解决方案是:关注「码云 Gitee」 微信公众号,绑定个人微信到码云帐号。这样 Action 在登录的过程中,Gitee 就不会下发短信验证码,而是通过「码云 Gitee」公众号给我们发送一个登录通知,Action 就能成功登录了。

问题 2:报 deploy error occurred, message: ‘NoneType’ object has no attribute ‘group’ 错误,怎么办?

报了这个错误,说明 Action 已经成功帮我们登录 Gitee 帐号了,但在访问 Gitee Repo 的过程中出现问题。

这种情况,一般是 Gitee Pages Action 的参数配置错误导致,请仔细检查你的配置信息。

注意:gitee-repo 参数严格区分大小写,请准确填写,比如 doocs/advanced-java,当你写成 doocs/Advanced-java 的时候,是访问不到的,不信你可以试试访问:https://gitee.com/Doocs/Advanced-java