Skip to content

Make Windows build jobs non-blocking (continue-on-error + warning aggregator)#2696

Draft
Copilot wants to merge 7 commits intotrunkfrom
copilot/update-windows-build-jobs
Draft

Make Windows build jobs non-blocking (continue-on-error + warning aggregator)#2696
Copilot wants to merge 7 commits intotrunkfrom
copilot/update-windows-build-jobs

Conversation

Copy link
Contributor

Copilot AI commented Mar 9, 2026

Windows CI jobs are flaky due to infrastructure issues outside our control, causing them to block the release job unnecessarily.

Changes

  • windows / windows-template jobs: Added continue-on-error: true so failures show as ⚠️ instead of ❌ and don't block downstream jobs.
  • New windows-result aggregator job: Runs on Ubuntu after both Windows jobs complete (regardless of outcome). Emits a ::warning:: annotation surfacing any failure in the PR annotations panel without failing the pipeline.
  • release job needs:: Replaced direct deps on windows and windows-template with windows-result, which always exits successfully on its own.
windows-result:
  name: "Windows [result]"
  needs:
    - windows
    - windows-template
  steps:
    - name: Warn if Windows builds failed
      if: ${{ contains(needs.*.result, 'failure') }}
      run: |
        echo "::warning::One or more Windows build jobs failed. This is non-blocking but should be investigated."

Platforms affected

  • Android
  • iOS
  • macOS
  • visionOS
  • Windows

Test plan

Verify in CI that a Windows build failure no longer blocks the release job, and that the windows-result job emits a visible warning annotation in the PR.

Original prompt

Background

The CI build tasks that build the Windows app are flaky through no fault of our own. Currently, the windows and windows-template jobs are hard dependencies of the release job, meaning if they fail, the entire pipeline is blocked.

Goal

Make the Windows build jobs optional (non-blocking) but still surface as a visible warning when they fail.

Changes required in .github/workflows/build.yml

1. Add continue-on-error: true to the windows job

  windows:
    name: "Windows"
    permissions: {}
    runs-on: windows-2025
    continue-on-error: true          # ← ADD THIS
    if: ${{ github.event_name != 'schedule' }}

2. Add continue-on-error: true to the windows-template job

  windows-template:
    name: "Windows [template]"
    permissions: {}
    runs-on: windows-2025
    continue-on-error: true          # ← ADD THIS
    if: ${{ github.event_name != 'schedule' }}

3. Add a new windows-result aggregator job

Insert this new job after windows-template and before release. It runs after both Windows jobs complete (regardless of outcome) and emits a ::warning:: annotation if either failed:

  windows-result:
    name: "Windows [result]"
    permissions: {}
    runs-on: ubuntu-24.04
    if: ${{ github.event_name != 'schedule' }}
    needs:
      - windows
      - windows-template
    steps:
      - name: Warn if Windows builds failed
        if: ${{ contains(needs.*.result, 'failure') }}
        run: |
          echo "::warning::One or more Windows build jobs failed. This is non-blocking but should be investigated."
          echo "windows result: ${{ needs.windows.result }}"
          echo "windows-template result: ${{ needs.windows-template.result }}"

4. Update the release job's needs: list

Replace the direct dependencies on windows and windows-template with the new windows-result aggregator job:

  release:
    needs:
      - review
      - ios
      - ios-template
      - android
      - android-template
      - macos
      - macos-template
      - windows-result          # ← replaces `windows` and `windows-template`

Expected outcome

  • Both Windows jobs can fail without blocking the CI pipeline (shown as ⚠️ in the GitHub UI instead of ❌)
  • The ::warning:: annotation in windows-result surfaces the failure prominently in the PR annotations panel
  • The release job waits for windows-result (which always succeeds on its own) and is no longer blocked by Windows flakiness
  • All non-Windows jobs are completely unaffected

This pull request was created from Copilot chat.


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Copilot AI changed the title [WIP] Make Windows build jobs optional and non-blocking Make Windows build jobs non-blocking (continue-on-error + warning aggregator) Mar 9, 2026
@github-actions github-actions bot added platform: Android This affects Android platform: iOS This affects iOS platform: macOS This affects macOS platform: Windows This affects Windows platform: visionOS labels Mar 9, 2026
@tido64 tido64 force-pushed the copilot/update-windows-build-jobs branch from 7a13b09 to d344ed8 Compare March 9, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform: Android This affects Android platform: iOS This affects iOS platform: macOS This affects macOS platform: visionOS platform: Windows This affects Windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants