Skip to content

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
test(ci): fail when a CI-path extractor stops matching by Chemaclass · Pull Request #1162 · TypedDevs/bashunit · GitHub
Skip to content

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' test(ci): fail when a CI-path extractor stops matching by Chemaclass · Pull Request #1162 · TypedDevs/bashunit · GitHub
Skip to content

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', '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('^' + ".*" + ' test(ci): fail when a CI-path extractor stops matching by Chemaclass · Pull Request #1162 · TypedDevs/bashunit · GitHub
Skip to content

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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" + ' test(ci): fail when a CI-path extractor stops matching by Chemaclass · Pull Request #1162 · TypedDevs/bashunit · GitHub
Skip to content

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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('^' + ".*" + ' test(ci): fail when a CI-path extractor stops matching by Chemaclass · Pull Request #1162 · TypedDevs/bashunit · GitHub
Skip to content

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' test(ci): fail when a CI-path extractor stops matching by Chemaclass · Pull Request #1162 · TypedDevs/bashunit · GitHub
Skip to content

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

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

test(ci): fail when a CI-path extractor stops matching - #1162

Merged
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard
Aug 13, 2026
Merged

test(ci): fail when a CI-path extractor stops matching#1162
Chemaclass merged 2 commits into
mainfrom
test/ci-paths-extractor-guard

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1161

The guards collect workflow paths that do not resolve on disk and assert
that set is empty, so an extractor that stops matching finds nothing to check
and the assertion holds. Renaming the test_path: pattern leaves all three
tests green
— nothing goes red at all.

This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.

💡 Changes

  • Assert both extractors still find the paths they parse
  • Floors sit under the current counts: 18 test_path: keys, and 3 distinct tests/ references once the workflows are deduplicated — fewer than it looks, because most jobs share the same paths
  • Verified against two mutations: a broken test_path: pattern, and a workflow directory that does not exist

The guards collect workflow paths that do not resolve and assert the set is
empty, so an extractor that stops matching finds nothing to check and the
assertion holds. Renaming the test_path: pattern left all three tests in this
file green -- nothing went red at all.
This file exists because CI path rot has shipped twice: #960 moving paths, and
coverage.yml globbing in a shell step while its non-blocking nightly run sat
red for days.
Assert both extractors still find what they parse. The floors sit under the
current counts: 18 test_path: keys, and 3 distinct tests/ references once the
workflows are deduplicated -- fewer than it looks, because most jobs share the
same paths.
Verified against two mutations: a broken test_path: pattern, and a workflow
directory that does not exist.
Closes#1161
@ChemaclassChemaclass added the bug Something isn't working label Aug 13, 2026
@ChemaclassChemaclass self-assigned this Aug 13, 2026
The new guard failed on Alpine, and the reason is the bug it was written to
find: BusyBox grep does not honour --include, so `grep -r ... --include='*.yml'`
produced nothing there and 'every tests/ path a workflow names resolves' had
been passing on Alpine by having no paths to check.
The workflows directory is flat, so an explicit glob is equivalent on GNU grep
and works on BusyBox. Verified in an alpine:3 container: 0 paths before, 3
after, matching macOS.
@Chemaclass
Chemaclass merged commit 7d4b05e into mainAug 13, 2026
37 checks passed
@Chemaclass
Chemaclass deleted the test/ci-paths-extractor-guard branch August 13, 2026 18:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass