下一步如何使用github-script操作的输出

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

我正在使用 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 github-actions
1个回答
0
投票

你混淆了一些事情:

  • 环境文件有两种形式:
    $GITHUB_OUTPUT
    用于输出,
    $GITHUB_ENV
    用于环境变量(请参阅环境文件
  • github-script 步骤通过返回值隐式设置输出

这是 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"

因为您无法直接将多行字符串写入环境文件(请参阅多行字符串)。

© www.soinside.com 2019 - 2024. All rights reserved.