GitHub Action:即使上一份成功,下一个工作也被跳过了

发布于 2025-02-13 05:55:50 字数 1231 浏览 0 评论 0原文

  generate_build_number:
    needs: [ aws, azure, gcp ]
    name: Generate Build Number
    runs-on: ubuntu-latest
    if: ${{ always() && contains(join(needs.*.result, ','), 'success') }}
    outputs:
      build_number: ${{ steps.buildnumber.outputs.build_number }}
    steps:
    - name: Generate build number
      id: buildnumber
      uses: einaregilsson/build-number@v3 
      with:
        token: ${{secrets.github_token}}

  zip_files:
    needs: generate_build_number
    name: Generate Zip File
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: echo ${{needs.generate_build_number.outputs.build_number}} > world.txt
      - uses: montudor/action-zip@v1
        with:
          args: zip -qq -r terraform-latest.zip aws azure gcp world.txt
      - uses: actions/upload-artifact@v1
        with:
          name: terraform-latest
          path: ${{ github.workspace }}/terraform-latest.zip

我只想在成功完成zip_files才能运行zip_files。即使generate_build_number完成了上述代码,zip_files也会跳过。

更多有关工作流程的详细信息“

  generate_build_number:
    needs: [ aws, azure, gcp ]
    name: Generate Build Number
    runs-on: ubuntu-latest
    if: ${{ always() && contains(join(needs.*.result, ','), 'success') }}
    outputs:
      build_number: ${{ steps.buildnumber.outputs.build_number }}
    steps:
    - name: Generate build number
      id: buildnumber
      uses: einaregilsson/build-number@v3 
      with:
        token: ${{secrets.github_token}}

  zip_files:
    needs: generate_build_number
    name: Generate Zip File
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: echo ${{needs.generate_build_number.outputs.build_number}} > world.txt
      - uses: montudor/action-zip@v1
        with:
          args: zip -qq -r terraform-latest.zip aws azure gcp world.txt
      - uses: actions/upload-artifact@v1
        with:
          name: terraform-latest
          path: ${{ github.workspace }}/terraform-latest.zip

I want to run zip_files only after generate_build_number is completed successfully. How using the above code, even though generate_build_number finished, zip_files was skipped.

For more details on the workflow

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流星番茄 2025-02-20 05:55:50

默认情况下,当设置“需求”时,github操作将解释条件,如果:success()。因此,如果步骤中有任何失败,GH将把工作视为不成功。

您是否可以在generate_build_number作业中为每个步骤添加继续:true

,或

添加以下条件

 generate_build_number:
    needs: [ aws, azure, gcp ]
    name: Generate Build Number
    runs-on: ubuntu-latest
    if: ${{ always() && contains(join(needs.*.result, ','), 'success') }}
    outputs:
      build_number: ${{ steps.buildnumber.outputs.build_number }}
    steps:
    - name: Generate build number
      id: buildnumber
      uses: einaregilsson/build-number@v3 
      with:
        token: ${{secrets.github_token}}

  zip_files:
    needs: generate_build_number
    if: always()
    name: Generate Zip File
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: echo ${{needs.generate_build_number.outputs.build_number}} > world.txt
      - uses: montudor/action-zip@v1
        with:
          args: zip -qq -r terraform-latest.zip aws azure gcp world.txt
      - uses: actions/upload-artifact@v1
        with:
          name: terraform-latest
          path: ${{ github.workspace }}/terraform-latest.zip

By default, when "needs" is set, Github actions will interpret the condition if: success(). So if there are any failures in steps, GH will treat the job as not successful.

Either you can add continue-on-error: true for each step in generate_build_number job

or

add a condition like below

 generate_build_number:
    needs: [ aws, azure, gcp ]
    name: Generate Build Number
    runs-on: ubuntu-latest
    if: ${{ always() && contains(join(needs.*.result, ','), 'success') }}
    outputs:
      build_number: ${{ steps.buildnumber.outputs.build_number }}
    steps:
    - name: Generate build number
      id: buildnumber
      uses: einaregilsson/build-number@v3 
      with:
        token: ${{secrets.github_token}}

  zip_files:
    needs: generate_build_number
    if: always()
    name: Generate Zip File
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: echo ${{needs.generate_build_number.outputs.build_number}} > world.txt
      - uses: montudor/action-zip@v1
        with:
          args: zip -qq -r terraform-latest.zip aws azure gcp world.txt
      - uses: actions/upload-artifact@v1
        with:
          name: terraform-latest
          path: ${{ github.workspace }}/terraform-latest.zip
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文