我正在使用 github-script 操作来检测当前 PR 中已更改的文件,然后我想在下一步中使用它来将输出发送到 python 脚本
我有以下 yml:
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: bbb
id: bbb
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const response = await github.request('GET /repos/{owner}/{repo}/pulls/{pull_number}/files', {
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number
});
const files = response.data.map(file => file.filename);
console.log(`FILES=${files.join('\n')}` >> $GITHUB_ENV);g
# - name: Set up Python
# uses: actions/setup-python@v2
- name: Execute Python script
run: |
echo "my ${{ steps.bbb.outputs.FILES }}"
我尝试了很多变体,但我无法在下一步“执行Python脚本”中使用它
你混淆了一些事情:
$GITHUB_OUTPUT
用于输出,$GITHUB_ENV
用于环境变量(请参阅环境文件)这是 github 脚本自述文件中的 示例:
- uses: actions/github-script@v7
id: set-result
with:
script: return "Hello!"
result-encoding: string
- name: Get result
run: echo "${{steps.set-result.outputs.result}}"
顺便说一句,如果您想从脚本设置多行值,则必须使用以下语法:
{
echo "output<<EOF"
echo "line 1"
echo "line 2"
echo "EOF"
} >> "$GITHUB_OUTPUT"
因为您无法直接将多行字符串写入环境文件(请参阅多行字符串)。