You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pnpm通过GitHub Actions部署GitHub Pages失败,请求定位错误

关于GitHub Actions部署无法生成有效URL的问题

我是GitHub Actions新手,之前在StackOverflow提问解决了部分问题,现在碰到新问题:部署脚本没法完成部署,还出现错误提示:

deploy Environment URL '' is not a valid http(s) URL, so it will not be shown as a link in the workflow graph.

我的Workflow配置代码如下:

name: pnpm Example Workflow
on:
push:
jobs:
 build:
 runs-on: ubuntu-latest
   strategy:
    matrix:
     node-version: [18]
    steps:
    - uses: actions/checkout@v3
    - uses: pnpm/action-setup@v2
       with:
       version: 7
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
       with:
       node-version: ${{ matrix.node-version }}
       cache: 'pnpm'
    - name: Install dependencies
       run: pnpm install
    - name: Build
       run: pnpm run build
   deploy:
   environment:
     name: github-pages
    #  url: ${{steps.deployment.outputs.page_url}}
   runs-on: ubuntu-latest
    steps:

 - name: Setup Pages
   uses: actions/configure-pages@v3
 - name: Upload artifact
    uses: actions/upload-pages-artifact@v1
    with:
     # Upload dist repository
    path: .
  - name: Deploy
   - name: Deploy
     uses: peaceiris/actions-gh-pages@v3
      with:
     github_token: ${{ secrets.GITHUB_TOKEN }}
      publish_dir: ./public

问题定位与解决方案

核心错误原因

  1. YAML缩进不规范:GitHub Actions对YAML缩进要求严格,原配置中多个job、步骤的层级缩进混乱,导致配置解析错误。
  2. 部署方式冲突:同时混用了官方GitHub Pages部署组件(actions/configure-pages、actions/upload-pages-artifact)和第三方的peaceiris/actions-gh-pages,两种流程无法兼容,导致环境URL无法正确获取。
  3. 部署路径错误:actions/upload-pages-artifact的path设为.(整个仓库),而peaceiris/actions-gh-pages的publish_dir设为./public,路径不统一,且无用文件会干扰部署。

修正后的配置方案

方案一:使用官方GitHub Pages部署流程(推荐)

name: pnpm Example Workflow
on:
  push:
    branches: [ main ] # 按需修改触发分支

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18]
    steps:
      - uses: actions/checkout@v3
      - uses: pnpm/action-setup@v2
        with:
          version: 7
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'pnpm'
      - name: Install dependencies
        run: pnpm install
      - name: Build
        run: pnpm run build # 确保build产物生成在dist目录,若不是需修改下面的path

  deploy:
    needs: build # 等待build任务完成后再执行部署
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }} # 正确获取部署后的URL
    steps:
      - name: Setup Pages
        uses: actions/configure-pages@v3
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          path: ./dist # 替换为你的实际build产物目录,比如public
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v2

方案二:使用第三方peaceiris/actions-gh-pages部署

name: pnpm Example Workflow
on:
  push:
    branches: [ main ] # 按需修改触发分支

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18]
    steps:
      - uses: actions/checkout@v3
      - uses: pnpm/action-setup@v2
        with:
          version: 7
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'pnpm'
      - name: Install dependencies
        run: pnpm install
      - name: Build
        run: pnpm run build
      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public # 替换为你的实际build产物目录,比如dist

注意事项

  • 确认项目的pnpm run build命令能正确生成静态产物到指定目录(比如dist或public)。
  • 使用官方流程时,需在仓库「Settings」→「Pages」中选择「GitHub Actions」作为部署来源。
  • YAML配置必须用2个空格缩进,不要用Tab键,避免解析错误。

内容的提问来源于stack exchange,提问作者Zak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:13:07