自动部署
脚本
sh
#!/usr/bin/env sh
set -e
npm run docs:build
cd docs/.vitepress/dist
git init
git add -A
git commit -m '🎉deploy gh-pages🎉'
git push -f git@github.com:fxzer/zerdocs.git master:gh-pages
cd ..
rm -rf dist
cd -
Action
::: tip 主要流程 检查代码(Checkout) ===> 启动node环境(Setup Node) ===> 构建静态文件(Build) ===> 把静态文件push到gh-pages,触发gh-pages自带的workflow部署(Push To GitHub Pages)===> 把仓库同步到Gitee(Sync to Gitee) ===> 触发Gitee Pages服务部署(Build Gitee Pages) :::
yml
name: Deploy GitHub Pages And Sync to Gitee
# 触发条件:在 push 到 master 分支后
on:
push:
branches:
- master
# 任务
jobs:
build-and-deploy:
runs-on: ubuntu-latest #部署运行环境搭建
steps:
- name: Checkout 🛎️
uses: actions/checkout@main
with:
persist-credentials: false
fetch-depth: 0 #github代码拉取深度
- name: Setup Node 🎬
uses: actions/setup-node@main
with:
node-version: "lts/*"
- name: Build 🔧
run: |
yarn
yarn run build
ls -lrth
- name: 📲 Push To GitHub Pages
uses: ftnext/action-push-ghpages@v1.0.0
with:
build_dir: dist
github_token: ${{ secrets.DEPLOY_TOKEN }}
- name: 🔁 Sync to Gitee #同步到Gitee
uses: wearerequired/git-mirror-action@master
env:
# 注意在此项目的 Settings->Actions-> Secrets 配置 GITEE_RSA_PRIVATE_KEY
SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
with:
# 注意替换为你的 GitHub 源仓库地址
source-repo: 'git@github.com:fxzer/zerdocs.git'
# 注意替换为你的 Gitee 目标仓库地址
destination-repo: 'git@gitee.com:fxzer/zerdocs.git'
- name: ✅ Build Gitee Pages #触发Gitee自动部署
uses: yanglbme/gitee-pages-action@master
with:
# 注意替换为你的 Gitee 用户名
gitee-username: fxzer
# 注意在 Settings->Secrets 配置 GITEE_PASSWORD
gitee-password: ${{ secrets.GITEE_PASSWORD }}
# 注意替换为你的 Gitee 仓库
# 坑点:https://gitee.com/fxzer/zerdocs -->则填:fxzer/zerdocs,注意仓库名和路径名不一致问题
gitee-repo: fxzer/zerdocs
# 要部署的分支
branch: gh-pages