Skip to content

chore: update

chore: update #86

Workflow file for this run

## 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}}
在线访问: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/read-json-property-action@v1.0
# 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}}