Git-GithubAction实现提交代码至私有库自动打包编译提交部署至公开库

涎涎原创约 1159 字大约 4 分钟...GitGit

Git-GithubAction实现提交代码至私有库自动打包编译提交部署至公开库?

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

需求

  1. 我有这样一个需求,如果我能够通过Git提交代码它能帮我自动打包部署至Github服务器那我不就会很省事
  • 当然很幸运github action提供了这样一个功能

实现

  1. 我是这样实现的,我有一个源码仓库 vuepress-theme-hope 这是不公开的 一个公开库 blog 这是展示打包编译后的代码的库
  2. 私有库 vuepress-theme-hope 只有一个分支 master
  3. 私有库 vuepress-theme-hope 在仓库的setting --> Sercets and variables --> Actions --> New repository secrets 里新建四个变量值以备后续使用
AS_TOKEN : 页面右上解用户名的setting --> Developer settings --> Presonal access tokens --> Tokens(classic) 
---> 自己新建就行了 用户名 AS_TOKEN  权限全部勾选 过期日期设置永不过期  之后生成的值就是你所需要的值

GITEE_RSA_PRIVATE_KEY : ssh-keygen -t rsa -b 4096 -C "你的github邮箱全名" 然后一直下一步直到生成对应的文件
比如我的就是ssh-keygen -t rsa -b 4096 -C "yanbo0039@yeah.net"生成在 C:\Users\Administrator\.ssh文件夹下
的 id_rsa 和 id_rsa.pub 文件 其中 id_rsa 里全部的值就是你 GITEE_RSA_PRIVATE_KEY 的值,记住是全部
id_rsa.pub 里的全部的值复制到 gitee 页面右上解用户名的设置 --> 安全设置 --> SSH公钥 其中标题随便填写 值一定要是 id_rsa.pub 里的全部

GITEE_USERNAME : 你的gitee的用户名

GITEE_PASSWORD : 你的gitee的密码

  1. 公开库 blog 只有一个分支 gh-page 只为跟上面的库的分支区分开来
  2. 公开库 blog 设置允许github action 操作的权限
  • 仓库setting --> Action --> General --> 右侧划到醉底部 Workflow permissions -->
  • 勾选 Read and write permissions 以及 Allow Github Actions to create and approve pull requests
  • 醉后点击Save即可
  1. 在公开库的要目录的 .github 文件夹下的workflows里配置deploy-docs.yml,其内容如下

name: 部署文档

# 触发条件:在 push 到 master 分支后
on:
  push:
    branches:
      # 确保这是你正在使用的分支名称
      - master
# 任务
jobs:
  deploy-gh-pages:
    # 服务器环境:最新版 Ubuntu
    runs-on: ubuntu-latest
    steps:
      # 1. 拉取代码
      - name: Checkout
        uses: actions/checkout@v3
        with:
          persist-credentials: false
          fetch-depth: 0
          # 如果你文档需要 Git 子模块,取消注释下一行
          submodules: true
#        2. 安装pnpm
      - name: 安装 pnpm
        uses: pnpm/action-setup@v2
        with:
          version: 8.4.0 # 添加版本号
          run_install: true
#        3. 安装node
      - name: 设置 Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: pnpm
#        4. 执行打包命令
      - name: 执行打包命令
        env:
          NODE_OPTIONS: --max_old_space_size=8192
        run:
          pnpm run docs:build
      # 5. 部署到 GitHub Pages
      - name: 提交以及部署到Github指定公开库
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          TOKEN: ${{ secrets.AS_TOKEN }}
          REPOSITORY-NAME: yanbo0039/blog
          # 这是文档部署到的分支名称
          branch: gh-pages
          # 这是待提交的目录
          folder: docs/.vuepress/dist

      # 6. 同步到 gitee 的仓库
      - name: 同步到Gitee
        uses: wearerequired/git-mirror-action@master
        env:
          # 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY
          SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
        with:
          # 注意替换为你的 GitHub 源仓库地址
          source-repo: git@github.com:yanbo0039/blog.git
          # 注意替换为你的 Gitee 目标仓库地址
          destination-repo: git@gitee.com:yanbo0039/blog.git
            
      # 4、部署到 Gitee Pages
      - name: 部署到 Gitee 服务器
        uses: yanglbme/gitee-pages-action@main
        with:
          # 注意替换为你的 Gitee 用户名
          gitee-username: ${{ secrets.GITEE_USERNAME }}
          # 注意在 Settings->Secrets 配置 GITEE_PASSWORD
          gitee-password: ${{ secrets.GITEE_PASSWORD }}
          # 注意替换为你的 Gitee 仓库,仓库名严格区分大小写,请准确填写,否则会出错
          gitee-repo: yanbo0039/blog
          # 要部署的分支,默认是 master,若是其他分支,则需要指定(指定的分支必须存在)
          branch: gh-pages
  • 照如上步骤配置完成后,即可实现每次向 vuepress-theme-hope 的 master 分支提交代码后则会自动打包提交部署至Github 以及 Gitee 的blog仓库 即可通过github生成的url进行访问生成的网页
  • 当前前提是你的Github 及 Gitee 里 对应的仓库

测试

  • 下图是我多次测试成功的记录

分割线


相关信息

以上就是我关于 Git-GithubAction实现提交代码至私有库自动打包编译提交部署至公开库 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4