feat(release): 同步到github pages时增加部署地址信息 #88
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## CD交付流水线 | |
## - 部署到Github Pages | |
## - 部署到Vercel托管平台 | |
## - 发布新的Github Release | |
## 参考资料:https://v2.vuepress.vuejs.org/zh/guide/deployment.html#github-pages | |
name: CD | |
on: | |
push: | |
branches: | |
- next | |
workflow_dispatch: | |
## vercel 环境变量 | |
env: | |
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | |
jobs: | |
## 部署到Github-Pages | |
deploy-github: | |
name: "部署到Github-Pages" | |
runs-on: ubuntu-latest | |
if: github.repository == '142vip/408CSFamily' | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
# “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 | |
fetch-depth: 0 | |
## 安装PNPM | |
- name: PNPM Install | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
## 安装Node环境 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.0 | |
## 淘宝镜像加速 | |
registry-url: 'https://registry.npmmirror.com' | |
## 缓存 | |
cache: 'pnpm' | |
## 下载依赖,并执行初始化脚本:钩子函数、思维导图构建 | |
- name: Install Dependencies | |
run: | | |
./scripts/ci | |
# 运行构建脚本 | |
- name: Build VuePress Site | |
run: | | |
./scripts/bundle build_proxy | |
# 将README.md同步,利于github pages分支展示 | |
- name: Add Readme.md To Dist | |
run: | | |
cp -f README.md docs/.vuepress/dist | |
- name: Check GitHub Pages status | |
uses: crazy-max/ghaction-github-status@v3 | |
with: | |
pages_threshold: major_outage | |
## 获取Git提交信息 | |
- name: Get Commit Info | |
id: gitInfo | |
run: | | |
echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT | |
echo "author=$(git log -1 --pretty=%an)" >> $GITHUB_OUTPUT | |
echo "email=$(git log -1 --pretty=%ae)" >> $GITHUB_OUTPUT | |
## 参考:https://github.com/marketplace/actions/github-pages | |
- name: Deploy To GitHub Page | |
uses: crazy-max/ghaction-github-pages@v3 | |
with: | |
target_branch: pages/github | |
build_dir: docs/.vuepress/dist | |
commit_message: | | |
chore(sync): v${{steps.gitInfo.outputs.version}} | |
部署地址: https://142vip.github.io/408CSFamily | |
committer: ${{steps.gitInfo.outputs.author}}<${{steps.gitInfo.outputs.email}}> | |
author: Mr·Sync | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
## 部署到vercel平台 | |
deploy-vercel: | |
name: "部署到Vercel平台" | |
runs-on: ubuntu-latest | |
if: github.repository == '142vip/408CSFamily' | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
# “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 | |
fetch-depth: 0 | |
## 注意: 这里的操作时间vercel平台配置的命令拉取下来,执行 | |
- name: Pull Vercel Environment Information | |
run: npm i -g vercel && vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} | |
## 执行vercel平台配置的命令 | |
- name: Build Project Artifacts | |
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} | |
## dist文件同步到vercel平台 | |
- name: Deploy Project Artifacts to Vercel | |
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }} | |
## 版本发布 | |
release: | |
name: "Github版本发布" | |
runs-on: ubuntu-latest | |
## 主库master、next且执行release更新时执行 | |
if: github.repository == '142vip/408CSFamily' && startsWith(github.event.head_commit.message, 'chore(release):') | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
# “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 | |
fetch-depth: 0 | |
### 打成压缩包 | |
- name: Create Zip Package | |
run: | | |
zip -r 408CSFamily.zip . \ | |
-x "node_modules/*" \ | |
-x "*.git*" | |
# 提取版本号 | |
- name: Get New Version Number | |
id: releaseVersion | |
run: | | |
echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT | |
# 创建发布版本 | |
- name: Create New Release | |
id: createRelease | |
uses: actions/create-release@latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: v${{ steps.releaseVersion.outputs.version }} | |
release_name: v${{ steps.releaseVersion.outputs.version }} | |
body: | | |
Release ${{ steps.releaseVersion.outputs.version }} | |
### Features | |
### Bug Fixes | |
## 更新资源 | |
- name: Upload Resource Assets | |
uses: actions/upload-release-asset@latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.createRelease.outputs.upload_url }} | |
asset_path: ./408CSFamily.zip | |
asset_name: 408CSFamily.zip | |
asset_content_type: application/zip | |
# Deploy-ESC: | |
# name: "部署到ESC服务器" | |
# needs: install-init | |
# runs-on: ubuntu-latest | |
# ## 主库master、next且执行release更新时执行 | |
# if: github.repository == '142vip/408CSFamily' && startsWith(github.event.head_commit.message, 'chore(release):') | |
# | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# | |
# - name: Get Current Version | |
# id: version | |
# uses: ashley-taylor/[email protected] | |
# with: | |
# path: ./package.json | |
# property: version | |
# | |
# # 拉取镜像,更新服务 | |
# - name: Pull Image And Update ESC | |
# uses: appleboy/ssh-action@master | |
# with: | |
# host: ${{ secrets.SERVER_HOST }} | |
# port: ${{ secrets.SERVER_PORT }} | |
# username: ${{ secrets.SERVER_USERNAME }} | |
# password: ${{ secrets.SERVER_PASSWORD }} | |
# script: | | |
# docker images | |
# echo "-----------正在运行的服务--------" | |
# docker ps | |
# cd /service_env/ && git reset --hard && git pull origin main | |
# bash ./scripts/book_doc.deploy.sh jsc ${{steps.version.outputs.value}} |