子文件夹上传到项目的主文件夹,而不是“目录”输入下指示的目录路径(github-push-action)

问题描述 投票:0回答:1

我尝试将一些文件和文件夹提交到主项目的子文件夹中,但所有文档最终都出现在错误位置的拉取请求中。

在我的工作流程的某些部分,我有以下输出:

然后,脚本的提交和推送部分显示以下内容:

这是我正在运行的工作流程脚本的最后一部分:

      - name: Init new repo in dist folder and commit generated files
        run: |
          cd docs/build/html/
          git init
          touch .nojekyll
          git add -A
          git config --local user.email "[email protected]"
          git config --local user.name "GitHub Action"
          git commit -m 'deploy'

      - name: Config global safe directory
        run: |
          git config --global --add safe.directory /github/workspace/docs/build/html

      - name: Force push to destination branch
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: rtd-pages
          force: true
          directory: './docs/build/html'

当我尝试发出拉取请求时,我看到所有文件都被推送到基本目录,而不是“目录”输入中所述的预期 /docs/build/html:

我做错了什么吗?

我在 Github 中打开了一个问题(#199),因为我认为我不是,通过包含“./docs/build/html”作为“目录”输入,它应该可以工作,但这是我第一次尝试 Github 操作。

提前致谢!

存储库:https://github.com/matteemol/dbSketcher

工作流程文件:https://github.com/matteemol/dbSketcher/blob/main/.github/workflows/commit-doc-changes.yml

github github-actions git-push
1个回答
0
投票

解决方案:设置

force_with_lease: True
而不是
force: True
,但最重要的是在暂存更改之前不要更改到
docs/build/html/
目录。

我没有考虑一个非常重要的事实,即对于 git 目的,每个文件的名称由

PATH/NAME.ext
组成,而不仅仅是
NAME.ext

例如:通过更改为

docs/build/html/
before 分期,我然后按
index.html
而不是
docs/build/html/index.html
。在推送之前将
Directory
指令移至
docs/build/html/
有助于在推送期间不会出现任何错误。如果不存在,我相信该操作将会失败,因为它会尝试从不存在的主文件夹中推送
index.html

在此处查看完全工作的工作流程

或这里:

`` 名称:提交文档更改(html)

on:

  workflow_dispatch:

jobs:
  build:

  runs-on: ubuntu-latest

  steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.9'

    - name: Install dependencies
      run: |
        python -m pip install -r requirements.txt

    - name: make the sphinx docs
      run: |
        make -C docs clean 
        make -C docs html

    - name: Init new repo in dist folder and commit generated files
      run: |
        touch .nojekyll
        git add -A
        git config --local user.email "[email protected]"
        git config --local user.name "GitHub Action"
        git commit -m 'deploy'

    - name: Force push to destination branch
      uses: ad-m/github-push-action@master
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        branch: rtd-docs
        force_with_lease: true``
© www.soinside.com 2019 - 2024. All rights reserved.