我尝试将一些文件和文件夹提交到主项目的子文件夹中,但所有文档最终都出现在错误位置的拉取请求中。
这是我正在运行的工作流程脚本的最后一部分:
- 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
解决方案:设置
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``