feat: add new github actions workflow for windows integ tests - #1867
Open
dgandhi62 wants to merge 2 commits into
Open
feat: add new github actions workflow for windows integ tests#1867dgandhi62 wants to merge 2 commits into
dgandhi62 wants to merge 2 commits into
Conversation
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Adds Windows instances of the five integ suites and decides when they run. Windows is slow and flaky-prone, so it does not gate every PR: - nightly at 06:00 UTC, where it runs unattended and reports a failure by filing (or commenting on) a tracking issue - on a PR that opts in with the 'pr/test-windows' label - on a manual workflow_dispatch, which is the only one of the three reachable from a branch Linux is excluded from the nightly, since it already runs on every PR. Supporting workflow changes: a Dev Drive for TEMP and the npm cache, since the suites are dominated by small-file writes; bash as the default shell so the shared step scripts run unchanged under Git Bash; a Windows skip list for tests that need Linux Docker images; approval bypass and checkout fallbacks for events that carry no pull request. Requires the 'pr/test-windows' and 'windows-integ-nightly' labels to exist in the repository.
files a GitHub issue labelled 'potential-regression', which is already wired up to page the team. Only on the schedule. A PR that opts into the Windows suites via the 'pr/test-windows' label files nothing: the failure is already a red check on the PR, and the label is there so a contributor can try Windows out, not to page anyone. The issue records the commit SHA as well as the run URL. Dependency upgrades merge unattended at 00:00 UTC and the nightly runs at 06:00, so consecutive nightlies do not necessarily test the same commit. The job MUST keep the default GITHUB_TOKEN. Issues created with it do not trigger other workflow runs, which is what stops issue-regression-labeler from stripping 'potential-regression' off an issue whose body has no regression checkbox. A PAT here would silently stop the page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Windows instances of the five integ suites (
cli-integ-tests,toolkit-lib,telemetry,init-templates,tool-integrations) and wires up when they run. Windows tests take about ~24 minutes to run on the default core by github. Therefore, we don't run them on every pr. Instead, we run them:potential-regression.pr/test-windowslabel. This failure then blocks the PR like any other integ failure.Linux is excluded from the nightly since it already runs on every PR
A schedule-only
integ_windows_report_failurejob files a GitHub issue on failure. Label-triggered PR runs file nothing. The job also must keep the defaultGITHUB_TOKEN. Issues created with it don't trigger other workflows, which is what stopsissue-regression-labelerfrom strippingpotential-regressionoff an issue whose body has no regression checkboxPrerequisites
Requires the
pr/test-windowslabel to exist in the repository so maintainers can opt a PR into the Windows suites. The nightly needs no label (it runs on a cron schedule). The failure-report issue uses the existingpotential-regressionlabel, already managed byissue-regression-labeler.Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license