From db0dcaefc167caefcaf29381d09ea63b77cedf46 Mon Sep 17 00:00:00 2001 From: handsomezhuzhu <2658601135@qq.com> Date: Thu, 4 Dec 2025 11:30:41 +0800 Subject: [PATCH] =?UTF-8?q?linuxdo=E5=9B=BE=E7=89=87=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=92=8C=E9=83=A8=E7=BD=B2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-old.yml | 99 --------------- .github/workflows/deploy.yml | 108 ---------------- docs/.vitepress/blog-theme.ts | 9 +- docs/public/linuxdo.png | Bin 0 -> 10932 bytes otherdocs/deploy.yml | 207 +++++++++++++++++++++++++++++++ 5 files changed, 208 insertions(+), 215 deletions(-) delete mode 100644 .github/workflows/deploy-old.yml create mode 100644 docs/public/linuxdo.png create mode 100644 otherdocs/deploy.yml diff --git a/.github/workflows/deploy-old.yml b/.github/workflows/deploy-old.yml deleted file mode 100644 index 0064b64..0000000 --- a/.github/workflows/deploy-old.yml +++ /dev/null @@ -1,99 +0,0 @@ -# name: Deploy Pages - -# # 触发条件,push到main分支或者pull request到main分支 -# on: -# push: -# branches: [main] -# pull_request: -# branches: [main] - -# # 支持手动在工作流上触发 -# workflow_dispatch: - -# # 设置时区 -# env: -# TZ: Asia/Shanghai - -# # 权限设置 -# permissions: -# # 允许读取仓库内容的权限。 -# contents: read -# # 允许写入 GitHub Pages 的权限。 -# pages: write -# # 允许写入 id-token 的权限。 -# id-token: write - -# # 并发控制配置 -# concurrency: -# group: pages -# cancel-in-progress: false - -# # 定义执行任务 -# jobs: -# # 构建任务 -# build: - -# runs-on: ubuntu-latest - -# # node v20 运行 -# strategy: -# matrix: -# node-version: [20] - -# steps: -# # 拉取代码 -# - name: Checkout -# uses: actions/checkout@v4 -# with: -# # 保留 Git 信息 -# fetch-depth: 0 - -# # 设置使用 Node.js 版本 -# - name: Use Node.js ${{ matrix.node-version }} -# uses: actions/setup-node@v4 -# with: -# node-version: ${{ matrix.node-version }} - -# # 使用 最新的 PNPM -# # 你也可以指定为具体的版本 -# - uses: pnpm/action-setup@v4 -# name: Install pnpm -# with: -# version: latest -# # version: 9 -# run_install: false - -# # 安装依赖 -# - name: Install dependencies -# run: pnpm install --no-frozen-lockfile -# # 锁定依赖版本 -# # run: pnpm install --frozen-lockfile - -# # 构建项目 -# - name: Build blog project -# run: | -# echo ${{ github.workspace }} -# pnpm build - -# # 资源拷贝 -# - name: Build with Jekyll -# uses: actions/jekyll-build-pages@v1 -# with: -# source: ./docs/.vitepress/dist -# destination: ./_site - -# # 上传 _site 的资源,用于后续部署 -# - name: Upload artifact -# uses: actions/upload-pages-artifact@v3 - -# # 部署任务 -# deploy: -# environment: -# name: github-pages -# url: ${{ steps.deployment.outputs.page_url }} -# runs-on: ubuntu-latest -# needs: build -# steps: -# - name: Deploy to GitHub Pages -# id: deployment -# uses: actions/deploy-pages@v4 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2f6f5f2..0064b64 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -97,111 +97,3 @@ # - name: Deploy to GitHub Pages # id: deployment # uses: actions/deploy-pages@v4 -name: Deploy to 1Panel & GitHub Pages - -# =========================== -# 触发条件 -# =========================== -on: - push: - branches: [main] - pull_request: - branches: [main] - workflow_dispatch: - -# 设置时区 -env: - TZ: Asia/Shanghai - -# 权限设置 -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: pages - cancel-in-progress: false - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [22] - - steps: - # 1. 拉取代码 - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # 2. 设置 Node.js - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - - # 3. 安装依赖 (npm) - - name: Install dependencies - run: npm install - - # 4. 构建项目 - - name: Build blog project - run: npm run build - - # -------------------------------------------------- - # 分支任务 A: 部署到 1Panel (路径已修改) - # -------------------------------------------------- - - name: Deploy to 1Panel via SCP - uses: appleboy/scp-action@master - with: - host: ${{ secrets.HOST }} - username: ${{ secrets.USERNAME }} - password: ${{ secrets.PASSWORD }} - port: ${{ secrets.PORT }} - - # 源文件 (保持不变) - source: "docs/.vitepress/dist/*" - - # 【关键修改】目标路径改为 1Panel 指定的路径 - # 注意:这里假设你在 1Panel 创建网站时,代号填的是 "blog" - target: "/opt/1panel/apps/openresty/openresty/www/sites/blog/index" - - # 去掉路径前缀 - strip_components: 3 - - - name: Fix 1Panel Permissions - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.HOST }} - username: ${{ secrets.USERNAME }} - password: ${{ secrets.PASSWORD }} - port: ${{ secrets.PORT }} - script: | - # 【关键修改】修复新路径的权限 - # 1Panel 容器通常使用 1000:1000 作为 www 用户 - chown -R 1000:1000 /opt/1panel/apps/openresty/openresty/www/sites/blog/index - - # -------------------------------------------------- - # 准备分支任务 B: 为 GitHub Pages 上传构建产物 - # -------------------------------------------------- - - name: Upload artifact for GitHub Pages - uses: actions/upload-pages-artifact@v3 - with: - path: docs/.vitepress/dist - - # ================================================== - # 任务 2: 部署到 GitHub Pages - # ================================================== - deploy-gh-pages: - needs: build - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/docs/.vitepress/blog-theme.ts b/docs/.vitepress/blog-theme.ts index 14c6ab7..f5a04d5 100644 --- a/docs/.vitepress/blog-theme.ts +++ b/docs/.vitepress/blog-theme.ts @@ -55,16 +55,9 @@ const blogTheme = getThemeConfig({ nickname: 'LINUX DO', des: '真诚、友善、团结、专业,共建你我引以为荣之社区。', avatar: - 'https://linux.do/uploads/default/original/4X/c/c/d/ccd8c210609d498cbeb3d5201d4c259348447562.png', + 'linuxdo.png', url: 'https://linux.do/', }, - { - nickname: '@linhk/blog', - des: 'linhongkuan的个人博客', - avatar: - 'https://linhk.top/logo.png', - url: 'https://linhk.top/', - }, ], // 公告 diff --git a/docs/public/linuxdo.png b/docs/public/linuxdo.png new file mode 100644 index 0000000000000000000000000000000000000000..133b88217f8dbfa1c801560d19d64f4863c78488 GIT binary patch literal 10932 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 NN^