在 github 操作中保存步骤变量不起作用

Save step variable in github action not working

我已经按照现有的在线文档提出了在下面的步骤中保存变量 file_size 的代码,但是它总是空白,即使有可用的文件,我做错了什么?

- name: Get modified files
  id: files
  uses: umani/changed-files@v3.3.0
  with:
    repo-token: ${{ github.token }}
    pattern: '^src.*\.(py)$'
    result-encoding: 'string'
- name: Check files size
  id: file_check
  run: |
    echo ::set-output name=file_size::$(printf "%s" "${{ steps.files.outputs.files_updated }} ${{ steps.files.outputs.files_created }}" | wc -m)
    echo 'MESSAGE<<EOF' >> $GITHUB_ENV
    echo  "No valid file found, skipped"  >> $GITHUB_ENV
    echo 'EOF' >> $GITHUB_ENV
- name: Lint with pylint
  if: steps.vars.file_check.file_size > 1

这是 运行 结果:

bash命令是正确的,我在网上试过:

这意味着变量没有保存在 github 操作中,怎么会?

好的,修复了:

- name: Check files size
      id: file_check
      run: |
        echo "file_size="$(printf "%s" "${{ steps.files.outputs.files_updated }} ${{ steps.files.outputs.files_created }}" | wc -m) >> $GITHUB_ENV
        echo 'MESSAGE=No valid file found, skipped' >> $GITHUB_ENV

您需要将值传递给$GITHUB_ENV

像这样:

echo "file_size="$(printf "%s" "${{ steps.files.outputs.files_updated }} ${{ steps.files.outputs.files_created }}" | wc -m) >> $GITHUB_ENV

否则该值将不会保留。