') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); [Android][Testing] Run runtime and libraries tests on all supported Android API versions by simonrozsival · Pull Request #115330 · dotnet/runtime · GitHub
Skip to content

[Android][Testing] Run runtime and libraries tests on all supported Android API versions - #115330

Closed
simonrozsival wants to merge 1 commit into
mainfrom
dev/simonrozsival/android-test-accross-available-android-api-levels
Closed

[Android][Testing] Run runtime and libraries tests on all supported Android API versions#115330
simonrozsival wants to merge 1 commit into
mainfrom
dev/simonrozsival/android-test-accross-available-android-api-levels

Conversation

@simonrozsival

Copy link
Copy Markdown
Member

Part of #107868, follow-up to #111858

This PR won't be merged, it's for testing purposes only.

Increase timeouts for Android emulator jobs
Trigger android emulator on PRs
Update Android lanes
CopilotAI review requested due to automatic review settings May 6, 2025 10:49
@simonrozsivalsimonrozsival added NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) NO-REVIEW Experimental/testing PR, do NOT review it os-android labels May 6, 2025
@simonrozsival

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-androidemulator

CopilotAI 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.

Pull Request Overview

This PR tests the runtime and libraries tests across all supported Android API versions by updating pipeline YAML definitions.

  • Updated trigger definitions in the runtime-androidemulator pipeline.
  • Added additional Android API versions for the android_x64 platform in multiple pipelines.
  • Increased timeout values for extra platforms to support longer-running tests.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

FileDescription
eng/pipelines/runtime-androidemulator.ymlUpdated trigger configurations for branch and path inclusion.
eng/pipelines/libraries/helix-queues-setup.ymlAdded support for multiple Android API versions for the android_x64 platform.
eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.ymlIncreased test job timeouts from 240/180 minutes to 1800 minutes.
eng/pipelines/coreclr/templates/helix-queues-setup.ymlExtended the list of Android API versions for the android_x64 condition.
Comments suppressed due to low confidence (2)

eng/pipelines/libraries/helix-queues-setup.yml:86

  • Consider using a consistent platform name (e.g., 'android_x64') as used in other pipeline files to avoid potential mismatches.
- ${{ if in(parameters.platform, 'Android_x64') }}: # there's no x86 emulator image anymore since Android 31

eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.yml:41

  • The timeout value has been significantly increased from 240 to 1800 minutes; please confirm that this extended duration is intentional for the test run requirements.
timeoutInMinutes: 1800


# Android x64
- ${{ if in(parameters.platform, 'android_x64') }}:
- Ubuntu.2204.Amd64.Android.21.Open

CopilotAIMay 6, 2025

Copy link

Choose a reason for hiding this comment

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

[nitpick] Ensure the ordering and grouping of the added Android API versions aligns with the intended testing sequence for clarity and ease of maintenance.

Copilot uses AI. Check for mistakes.
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @akoeplinger, @matouskozak, @simonrozsival
See info in area-owners.md if you want to be subscribed.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-monoNO-MERGEThe PR is not ready for merge yet (see discussion for detailed reasons)NO-REVIEWExperimental/testing PR, do NOT review itos-android

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@simonrozsival