Git-GithubAction实现提交代码至私有库自动打包编译提交部署至公开库
原创约 1159 字大约 4 分钟...
Git-GithubAction实现提交代码至私有库自动打包编译提交部署至公开库?
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
需求
- 我有这样一个需求,如果我能够通过Git提交代码它能帮我自动打包部署至Github服务器那我不就会很省事
- 当然很幸运github action提供了这样一个功能
实现
- 我是这样实现的,我有一个源码仓库 vuepress-theme-hope 这是不公开的 一个公开库 blog 这是展示打包编译后的代码的库
- 私有库 vuepress-theme-hope 只有一个分支 master
- 私有库 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的密码
- 公开库 blog 只有一个分支 gh-page 只为跟上面的库的分支区分开来
- 公开库 blog 设置允许github action 操作的权限
- 仓库setting --> Action --> General --> 右侧划到醉底部 Workflow permissions -->
- 勾选 Read and write permissions 以及 Allow Github Actions to create and approve pull requests
- 醉后点击Save即可
- 在公开库的要目录的 .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