Skip to content

[CI] Run C++20 build checks daily instead of in pre-commit - #39540

Merged
mryzhov merged 3 commits into
openvinotoolkit:masterfrom
mryzhov:ci/cpp20-to-nightly
Nov 5, 2026
Merged

mryzhov merged 3 commits into
openvinotoolkit:masterfrom
mryzhov:ci/cpp20-to-nightly

Conversation

@mryzhov

@mryzhov mryzhov commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Details:

  • Stop running the non-blocking C++20 compile checks (Build_CPP20) on the initial PR, merge queue and post-commit runs in ubuntu_22.yml, ubuntu_24.yml and windows_vs2022_release.yml.
  • Run the checks daily using a 0 2 * * * schedule in each existing workflow. On that schedule, the regular build and its dependent build/test jobs are skipped; Smart_CI, Docker on Linux, and Overall_Status still run.
  • Also run Build_CPP20 on workflow_dispatch or when github.run_attempt > 1, provided Smart CI does not skip the workflow. Like draft validation, contributors can select Re-run all jobs on a PR workflow to opt in. This re-runs the other workflow jobs as well; the condition also matches automated re-runs.
  • The existing Ubuntu nightly schedules are unchanged. They do not run C++20 on their first attempt, but a re-run can include it.
  • Document the re-run behavior and Smart CI limitation in docs/dev/ci/github_actions/smart_ci.md. Build_CPP20 remains non-blocking and outside Overall_Status.

Tickets:

AI Assistance:

  • AI assistance used: yes
  • The changes were drafted with an AI assistant; human validation has not yet been reported.
  • ../actionlint -shellcheck= -ignore 'label ".+" is unknown' .github/workflows/ubuntu_22.yml .github/workflows/ubuntu_24.yml .github/workflows/windows_vs2022_release.yml: passed.
  • python3 check_cpp20_reruns.py (temporary local script evaluating the workflow conditions): passed 12 scenarios per workflow, covering initial runs, re-runs, draft PRs, schedules, dispatch and Smart CI skips.
  • git diff --check: passed.
  • A live GitHub re-run and the new daily schedule have not been exercised yet.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mryzhov
mryzhov requested a review from a team as a code owner November 5, 2026 13:19
@github-actions github-actions Bot added category: CI OpenVINO public CI github_actions Pull requests that update GitHub Actions code labels Nov 5, 2026
@mryzhov
mryzhov requested a balanced review from Copilot November 5, 2026 13:23
Replace the separate cpp20_nightly.yml with a dedicated '0 2 * * *' schedule
in ubuntu_22, ubuntu_24 and windows_vs2022_release. On that schedule only
Build_CPP20 runs (Build and its dependents are skipped); Build_CPP20 no longer
runs in pre-commit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The workflow builds the wrong ref when a target branch is requested, prevents nightly Windows cache refreshes, and omits C++20 validation when draft PRs become ready for review.

3 open issues
What changed in this PR

Moves OpenVINO’s non-blocking C++20 compile checks out of regular validation workflows into a dedicated nightly workflow, reducing runner use without changing required checks.

Changes:

  • Schedules Ubuntu 22.04, Ubuntu 24.04, and Windows VS2022 Release builds daily at 00:00 UTC.
  • Adds manual dispatch and path-filtered PR triggers for C++20 workflow changes.
  • Reuses existing build workflows and preserves their CMake options and non-blocking behavior.
File Description
.github/​workflows/​windows_vs2022_release.yml Removes the regular Windows C++20 build job.
.github/​workflows/​ubuntu_24.yml Removes the regular Ubuntu 24.04 C++20 build job.
.github/​workflows/​ubuntu_22.yml Removes the regular Ubuntu 22.04 C++20 build job.
.github/​workflows/​cpp20_nightly.yml Adds nightly orchestration for all three C++20 builds, including Smart CI and Docker setup.

Review effort: Balanced

Comment thread .github/workflows/cpp20_nightly.yml Outdated
Comment on lines +8 to +11
target-branch:
description: 'Target branch for the build; taken from event context by default'
type: string
required: false
Comment thread .github/workflows/cpp20_nightly.yml Outdated
description: 'Target branch for the build; taken from event context by default'
type: string
required: false
pull_request:
Comment thread .github/workflows/cpp20_nightly.yml Outdated
name: Build (C++20, Windows VS2022 Release)
needs: [ Smart_CI ]
if: "!needs.smart_ci.outputs.skip_workflow"
uses: ./.github/workflows/job_build_windows_cpp20.yml
@mryzhov mryzhov changed the title [CI] Move C++20 build checks to a daily nightly workflow [CI] Run C++20 build checks daily instead of in pre-commit Nov 5, 2026
@mryzhov
mryzhov requested a review from praasz November 5, 2026 13:41
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mryzhov
mryzhov requested a review from a team as a code owner November 5, 2026 13:49
@mryzhov
mryzhov requested review from michalzx and removed request for a team November 5, 2026 13:49
@github-actions github-actions Bot added the category: docs OpenVINO documentation label Nov 5, 2026
@mryzhov
mryzhov enabled auto-merge November 5, 2026 15:12
@mryzhov
mryzhov disabled auto-merge November 5, 2026 15:38
@mryzhov
mryzhov enabled auto-merge November 5, 2026 15:39
@mryzhov
mryzhov added this pull request to the merge queue Nov 5, 2026
Merged via the queue into openvinotoolkit:master with commit 1525204 Nov 5, 2026
258 of 264 checks passed
@mryzhov
mryzhov deleted the ci/cpp20-to-nightly branch November 5, 2026 18:00
@praasz praasz added this to the 2026.5 milestone Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: CI OpenVINO public CI category: docs OpenVINO documentation github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants