首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对Github操作的有条件作业执行

针对Github操作的有条件作业执行
EN

Stack Overflow用户
提问于 2022-09-18 15:21:59
回答 1查看 108关注 0票数 1

我想根据以前的作业(Format)有条件地执行Github。如果代码需要格式化,我想执行以下作业(create_commit),否则跳过它,什么也不做。

不幸的是,目前第二个作业从未触发,无论第一个作业的输出是什么。

我的行动:

代码语言:javascript
复制
name: Format
on: push
jobs:
  format:
    name: Code formatting in Black
    runs-on: ubuntu-latest
    outputs:
      trigger_commit: ${{ steps.changes_present.outputs.changes_detected }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
      - name: Install package
        run: pip install 'black[d]'
      - name: Run black formatter
        run: black .
      - name: Check diff for changes
        id: changes_present
        run: |
            outputs=$(git diff)
            if ! [ -z "$outputs" ]
            then
              echo '::set-output name=changes_detected::true' 
            fi
  create_commit:
    runs-on: ubuntu-latest   <- Job never executed
    needs: format
    if: needs.format.outputs.changes_detected == true        
    steps:
      - name: Commit
        run: |
          git config user.name 'github-actions[bot]'
          git config user.email 'github-actions[bot]@users.noreply.github.com'
          git commit -am "Files updated after formatting"
          git push
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-18 18:31:43

format作业的输出名为trigger_commit,而不是changes_detected。所以试试这个:

代码语言:javascript
复制
 if: needs.format.outputs.trigger_commit == `true`        

您可以使用动作衬里检查此错误,在线版本也可用。看这个链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73763959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档