Oli*_*bie 5 git github github-actions
我有一个在拉取请求上触发的 github 操作工作流。我想找到在每次提交中已更改的文件,因此我正在尝试运行git diff-tree --no-commit-id --name-only -r ${{ github.sha }}
但是它不会返回该拉取请求中最新提交的哈希提交。我返回了另一个哈希提交(我在我的仓库中的任何地方都找不到它的提交)。
任何人都知道如何解决这个问题或以其他方式我可以在拉取请求中找到在提交中更改的所有文件?
编辑——yml文件
name: test
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- checkout my repo
- install python
- run a python script
run: |
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }})
python3 .github/scripts/test.py $CHANGED_FILES
Run Code Online (Sandbox Code Playgroud)
我的 github.sha 生成的哈希提交(这里是 ^)似乎与我提交的实际哈希不匹配。
t3r*_*ian 10
我用不同的触发器遇到了类似的问题。事实证明,您可以使用以下步骤打印 GitHub 变量:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
Run Code Online (Sandbox Code Playgroud)
在pull_request
最新提交的哈希的情况下可以在${{ github.event.pull_request.head.sha }}
变量中找到,而${{ github.sha }}
指的是 PR 合并提交。