From b44f10c0f5fae8d4fba59eb324c6898d7ba19ba9 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 29 Apr 2026 17:20:18 +0000 Subject: [PATCH 1/2] Create an issue if build_*_workspace output is nonzero --- .../workflows/reusable-industrial-ci-with-cache.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/reusable-industrial-ci-with-cache.yml b/.github/workflows/reusable-industrial-ci-with-cache.yml index 56ac6d90..c5a9177f 100644 --- a/.github/workflows/reusable-industrial-ci-with-cache.yml +++ b/.github/workflows/reusable-industrial-ci-with-cache.yml @@ -157,10 +157,11 @@ jobs: if: ${{ always() && steps.ici.outcome == 'failure' && github.event_name == 'schedule' }} run: wget https://raw.githubusercontent.com/ros-controls/ros2_control_ci/master/.github/issue_template_failed_ci_downstream.md -O .github/issue_template_failed_ci_downstream.md - - uses: JasonEtco/create-an-issue@v2 + - name: Create issue on failure (target workspace) + uses: JasonEtco/create-an-issue@v2 # `make` and so `colcon build` returns 2 on errors, while `colcon test-result` returns 1 on # when any test failed. - if: ${{ always() && (steps.ici.outputs.build_target_workspace == '2' || steps.ici.outputs.target_test_results == '1') && github.event_name == 'schedule'}} + if: ${{ always() && (fromJSON(steps.ici.outputs.build_target_workspace) > 0 || steps.ici.outputs.target_test_results == '1') && github.event_name == 'schedule' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ACTION_NAME: ${{ inputs.ros_distro }}/${{ inputs.ros_repo }} @@ -169,8 +170,9 @@ jobs: with: update_existing: true filename: .github/issue_template_failed_ci.md - - uses: JasonEtco/create-an-issue@v2 - if: ${{ always() && (steps.ici.outputs.build_downstream_workspace == '2' || steps.ici.outputs.downstream_test_results == '1') && github.event_name == 'schedule'}} + - name: Create issue on failure (downstream workspace) + uses: JasonEtco/create-an-issue@v2 + if: ${{ always() && (fromJSON(steps.ici.outputs.build_downstream_workspace) > 0 || steps.ici.outputs.downstream_test_results == '1') && github.event_name == 'schedule'}} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ACTION_NAME: ${{ inputs.ros_distro }}/${{ inputs.ros_repo }} From eef3c769f5fe4597ab87cec6d7c52741761fbe42 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 29 Apr 2026 19:09:15 +0000 Subject: [PATCH 2/2] Guard empty output --- .github/workflows/reusable-industrial-ci-with-cache.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable-industrial-ci-with-cache.yml b/.github/workflows/reusable-industrial-ci-with-cache.yml index c5a9177f..bd616646 100644 --- a/.github/workflows/reusable-industrial-ci-with-cache.yml +++ b/.github/workflows/reusable-industrial-ci-with-cache.yml @@ -161,7 +161,7 @@ jobs: uses: JasonEtco/create-an-issue@v2 # `make` and so `colcon build` returns 2 on errors, while `colcon test-result` returns 1 on # when any test failed. - if: ${{ always() && (fromJSON(steps.ici.outputs.build_target_workspace) > 0 || steps.ici.outputs.target_test_results == '1') && github.event_name == 'schedule' }} + if: ${{ always() && ((steps.ici.outputs.build_target_workspace != '' && fromJSON(steps.ici.outputs.build_target_workspace) > 0) || steps.ici.outputs.target_test_results == '1') && github.event_name == 'schedule' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ACTION_NAME: ${{ inputs.ros_distro }}/${{ inputs.ros_repo }} @@ -172,7 +172,7 @@ jobs: filename: .github/issue_template_failed_ci.md - name: Create issue on failure (downstream workspace) uses: JasonEtco/create-an-issue@v2 - if: ${{ always() && (fromJSON(steps.ici.outputs.build_downstream_workspace) > 0 || steps.ici.outputs.downstream_test_results == '1') && github.event_name == 'schedule'}} + if: ${{ always() && ((steps.ici.outputs.build_downstream_workspace != '' && fromJSON(steps.ici.outputs.build_downstream_workspace) > 0) || steps.ici.outputs.downstream_test_results == '1') && github.event_name == 'schedule' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ACTION_NAME: ${{ inputs.ros_distro }}/${{ inputs.ros_repo }}