Github Actions部署React Storybook至Github Pages误删仓库的解决方法
解决方案
要解决部署时覆盖仓库所有文件的问题,你需要调整GitHub Action的配置,确保拉取仓库完整内容后仅更新/docs文件夹,具体修改如下:
1. 修改Checkout步骤
确保拉取main分支的完整历史和所有文件,避免部署时覆盖整个分支:
- name: Checkout main branch uses: actions/checkout@v3 with: ref: main fetch-depth: 0 # 拉取完整仓库历史,保留所有现有文件 persist-credentials: false
2. 调整Deploy步骤配置
保持仅清理docs文件夹旧内容,而非整个分支,确保只将Storybook构建产物部署到/docs:
- name: Deploy uses: JamesIves/github-pages-deploy-action@v4 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BRANCH: main FOLDER: docs-build CLEAN: true # 仅清理TARGET_FOLDER(即docs)内的旧内容,不影响仓库其他文件 TARGET_FOLDER: docs
修改后的完整storybook.yml
name: Build and Deploy on: push: paths: [ "src/stories/**" ] # 仅当stories文件夹内容变更时触发 env: NPM_TOKEN: ${{ secrets.READER_TOKEN }} jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout main branch uses: actions/checkout@v3 with: ref: main fetch-depth: 0 persist-credentials: false - name: Install and Build run: | yarn install --frozen-lockfile yarn build-storybook - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BRANCH: main FOLDER: docs-build CLEAN: true TARGET_FOLDER: docs
关键说明
fetch-depth: 0:确保拉取仓库所有历史和文件,避免部署时丢失原有内容ref: main:明确指定拉取main分支,保证操作的分支正确CLEAN: true:仅清理docs文件夹内的旧构建产物,不会影响仓库中其他文件
内容的提问来源于stack exchange,提问作者Leff
相关产品推荐
相关产品推荐

