Files
action-sandbox/.github/workflows/deploy.yaml

82 lines
2.3 KiB
YAML

name: Deploy to Aliyun OSS
on:
push:
tags:
- "wiki/**" # 当推送 wiki/** 开头的 tag 时触发
branches:
- "main" # 当推送 main 分支时触发
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Set variable
run: |
REPO_NAME=${{ github.event.repository.name }}
# 判断触发类型
if [[ "${{ github.ref_type }}" == "tag" ]]; then
# Tag 触发:去掉 "wiki/" 前缀
TAG_NAME=${{ github.ref_name }}
CLEAN_TAG_NAME=${TAG_NAME#wiki/}
BASE_PATH="/$REPO_NAME/$CLEAN_TAG_NAME/"
else
# Branch 触发:使用仓库名
TAG_NAME=""
BASE_PATH="/$REPO_NAME/"
fi
echo "REPO_NAME=$REPO_NAME" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "BASE_PATH=$BASE_PATH" >> $GITHUB_ENV
echo "Repository: $REPO_NAME"
echo "Tag: $TAG_NAME"
echo "Base path: $BASE_PATH"
- name: Checkout code
uses: actions/checkout@v6
- name: Fetch wiki LFS files
run: |
git lfs install
git lfs pull --exclude= --include wiki
- name: Update VitePress base path
run: |
sed -i "s|base: '.*'|base: '$BASE_PATH'|g" wiki/.vitepress/config.mts
echo "Updated base path to: $BASE_PATH"
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10
- name: Install dependencies
run: pnpm install
- name: Build VitePress
run: pnpm wiki:build
- name: Setup Aliyun CLI
run: |
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
tar -xzf aliyun-cli-linux-latest-amd64.tgz
sudo mv aliyun /usr/local/bin/
aliyun configure set \
--profile default \
--mode AK \
--access-key-id ${{ secrets.OSS_ACCESS_KEY_ID }} \
--access-key-secret ${{ secrets.OSS_ACCESS_KEY_SECRET }} \
--region ${{ secrets.OSS_REGION }}
- name: Deploy to OSS
run: |
OSS_PATH=oss://${{ secrets.OSS_BUCKET }}$BASE_PATH
echo "Deploying to: $OSS_PATH"
aliyun oss cp wiki/.vitepress/dist $OSS_PATH --recursive --update
env:
OSS_ENDPOINT: ${{ secrets.OSS_ENDPOINT }}