【问题标题】:Github actions: Run step after failed step, but only when scheduledGithub 操作:在失败的步骤后运行步骤,但仅在计划时运行
【发布时间】:2021-11-16 09:31:42
【问题描述】:

我在下面有以下 github 操作/工作流文件。如果任何测试失败或引发异常,行为执行会跳过报告上传。我可以通过在下一步中使用always() 来修复它,但不幸的是,即使我们手动运行测试,现在也正在上传报告,并且我们只想在预定时(每天)上传。有人知道如何实现吗?

...
    - name: Run BDD tests
      env:
        STAGE_EMAIL: ${{ secrets.STAGE_EMAIL }}
        STAGE_PASSWORD: ${{ secrets.STAGE_PASSWORD }}
      run: |
        rm -rf allure-results
        mkdir -p allure-results
        behave --junit --junit-directory allure-results

    - name: Upload test report to Allure
      if: ${{ always() }} && github.event_name == 'schedule'
      env:
        ALLURE_SERVER: ${{ secrets.ALLURE_SERVER }}
      run: |
        python send_test_results.py $GITHUB_REPOSITORY $GITHUB_RUN_ID $ALLURE_SERVER default
...

【问题讨论】:

  • 请尝试${{ always() } && github.event_name == 'schedule' }
  • 差不多就是这样。将两个花括号向右移动有效。像这样:${{ always() && github.event_name == 'schedule' }}。谢谢@KrzysztofMadej!
  • 确实我错了

标签: python github continuous-integration github-actions


【解决方案1】:

这个表达式会做你想做的${{ always() && github.event_name == 'schedule' }}

【讨论】:

    猜你喜欢
    • 2020-11-28
    • 2020-12-07
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2020-03-10
    • 2020-12-08
    相关资源
    最近更新 更多