WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

WIP: Add installer build/test to the runtime.yml pipeline - #529

Closed
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer
Closed

WIP: Add installer build/test to the runtime.yml pipeline#529
jkoritzinsky wants to merge 52 commits into
dotnet:masterfrom
jkoritzinsky:runtime.yml-installer

Conversation

@jkoritzinsky

Copy link
Copy Markdown
Member

No description provided.

@jkoritzinsky
jkoritzinskyforce-pushed the runtime.yml-installer branch 3 times, most recently from 4c79548 to 5ccbbf0CompareDecember 5, 2019 01:24
@jkoritzinsky

jkoritzinsky commented Dec 5, 2019

Copy link
Copy Markdown
MemberAuthor

@dagood this is where I've been working on integrating the installer build/test jobs into the runtime.yml pipeline. I have the (non live-live) build working. Below are the next steps I was planning:

  • Use the checkout job as the only clone/checkout step and checkout from the git bundle like coreclr and libraries.
  • Enable live-live consumption in the installer jobs.
  • Port the usage of platform-matrix.yml for the installer jobs in runtime.yml back to installer/azure-pipelines.yml so we don't have to duplicate declaring our build pools.

@dagooddagood self-assigned this Dec 5, 2019
@dagood

Copy link
Copy Markdown
Member

Status (also reminder for myself where this is at):

Now the installer jobs grab the bits, but fail because Libraries doesn't upload [runtime.*.]Microsoft.Private.CoreFx.NETCoreApp.nuspec. But even if Libraries did upload it, there's more to do there... the nuspec contains absolute paths on the other build agent and would need translation. And it might not be as simple as replacing the old base dir with a new base dir--I think these paths might be to deeper project dirs like ...\runtime\artifacts\bin\System.Private.Xml.Linq\netcoreapp-Windows_NT-Debug\System.Private.Xml.Linq.dll rather than the flattish bin/runtime/{config}/{files} artifact that's uploaded.

It seems like the simplest way to solve this is to have at least the part of "local live-live" (#494 for easy click) where it picks up the Libraries bits by a convention rather than by parsing the nuspec.

@jkoritzinsky did you have something in mind to get the PR past this? Very possible it came up and I'm forgetting.

(FYI I ended up moving Installer onto a base-job template similar to CoreFX since it seemed like the most reasonable way to share the dependency and artifact download logic. In particular generating the name of the target jobs would have been nasty to maintain everywhere.)

@jkoritzinsky

Copy link
Copy Markdown
MemberAuthor

You came to the same conclusion that I did (picking up the libraries by convention). You'll want to use the "shared framework" paths. There's an MSBuild property to enable binplacing the shared framework to the right folder. I don't remember it off the top of my head, but I'll find it again tomorrow and let you know.

@dagood
dagoodforce-pushed the runtime.yml-installer branch from a939daf to 988aa15CompareDecember 6, 2019 17:57
@dagood
dagoodforce-pushed the runtime.yml-installer branch from 1a5ac25 to 3ecd4aeCompareDecember 6, 2019 20:14
@dagood

Copy link
Copy Markdown
Member

Closing in favor of #705 without "WIP" in title. Would leave it open to see CI results, but the most recent run is stalled out with agent issues.

@dagooddagood closed this Dec 9, 2019
@jkoritzinsky
jkoritzinsky deleted the runtime.yml-installer branch December 10, 2019 23:26
@ghostghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jkoritzinsky@dagood