Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 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

Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater
, '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

Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater
, '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 > 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

Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater
, '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

Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater
, '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

Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater
, '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

Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater
, '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

Chore/githib actions ci - #698

Open
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci
Open

Chore/githib actions ci#698
timcadman wants to merge 14 commits into
v7.0-devfrom
chore/githib-actions-ci

Conversation

@timcadman

@timcadmantimcadman commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Background

The existing Azure CI has worked well, but it can potentially be improved.

What's changed

  • Migrated from Azure to github actions

New features

  • Runs Opal and Armadillo each time
  • Tests are run in parallel batches reducing time from >1 hour to <20 mins
  • Added lint testing for code quality
  • Add a summary of passes/fails in the comments

Still to do

  • I have also tried to add code cov but I can't get it working - maybe we look at this together.

Testing

This was very AI generated flow, but I have asked it to review its own code and it assures me that none of the existing functionality is lost haha. I have also tested it against different combinations of passing and failing.

@timcadman
timcadman changed the base branch from v6.3.6-dev to v7.0-devSeptember 1, 2026 18:42
@github-actions

github-actionsBot commented Sep 1, 2026

Copy link
Copy Markdown
❌ 3 of 5 checks failed
CheckResult
Devtools checks✅ passed
Code quality✅ 0 findings
Armadillo unit tests[ FAIL 10 | WARN 0 | SKIP 27 | PASS 11038 ]
Opal unit tests[ FAIL 6 | WARN 0 | SKIP 27 | PASS 11035 ]
Test coverage❌ 61.2% vs 80% target

Tested against dsBase versions:
Armadillo: 7.0.0.9000
Opal: 7.0.0.9000

Logs: Devtools checks · Code quality · Armadillo unit tests · Opal unit tests · Codecov

@timcadman
timcadmanforce-pushed the chore/githib-actions-ci branch 2 times, most recently from 93b375f to 7e43432CompareSeptember 1, 2026 19:09
@timcadman
timcadman marked this pull request as ready for review September 2, 2026 13:49

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Could we make version of dsBase being tested easily configured (done outside the action scripts), specification of profile being tested?

actions/setup-armadillo-with-dsbase/action.yml:

  • I think, if like opal it used a prepared docker image for armadillo it would be easier to manage and others modify
  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.
  • Line 63 not sure why it performs the same curl command twice

actions/setup-opal-with-dsbase/action.yaml‎

  • Does image requires "Uninstall default MySQL"? I would expect that to be specific to Azure Pipeline images.

@StuartWheaterStuartWheater left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Env var: PKG_INCLUDE_LINKINGTO - "This is sometimes useful"
(https://pak.r-lib.org/reference/pak-config.html)

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Thanks for your review Stuart. Before I merge it should we meet to discuss? E.g. I couldn't get codecov working but I've seen you have elsewhere? Do we replace Azure with this or do you first want to investigate CircleCI?

@timcadman

Copy link
Copy Markdown
ContributorAuthor

Have tried to address all your comments:

  • Use docker-compose for armadillo
  • Use armadillo.install_pkg instead of curl commands
  • Refactored to abstract out shared package setup used in both Armadillo and Opal

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@timcadman@StuartWheater