add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07
, '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

add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07
, '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

add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07
, '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

add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07
, '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

add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07
, '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

add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07
, '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

add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07
, '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

add workflow - #5

Open
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow
Open

add workflow#5
pranavz28 wants to merge 9 commits into
mainfrom
test-workflow

Conversation

@pranavz28

@pranavz28pranavz28 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces a new GitHub Actions workflow to automate dependency updates for both Node and Python environments, and integrates visual regression testing using Percy Web. The workflow runs weekly and on demand, automatically bumps dependencies, creates a pull request if changes are detected, and runs Percy Web tests on the update branch. It also provides feedback on the status of Percy builds directly in the pull request.

Automated Dependency Management

  • Adds a scheduled workflow (.github/workflows/dependency-update.yml) that updates Node (via npm-check-updates) and Python dependencies (via pip), and ensures the latest stable version of @percy/cli is installed.
  • Automatically creates a pull request with updated dependencies and a summary of changes if any updates are detected.

Percy Web Integration

  • Runs Percy Web visual regression tests on the dependency update pull request branch, using the latest dependencies and browsers installed via Playwright.
  • Comments on the pull request with the result of the Percy Web run, including build URLs and error details if applicable.
  • Uploads Percy Web logs as workflow artifacts for debugging and traceability.

@pranavz28
pranavz28 requested a review from a team as a code ownerOctober 7, 2025 10:53
Refactor GitHub Actions workflow for dependency updates. Simplify job structure, improve naming conventions, and enhance logging.
Comment on lines +91 to +103
- name: Install Node deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
npm ci || npm install

- name: Re-create venv & install Python deps (PR branch)
if: ${{ steps.cpr.outputs.pull-request-number != '' }}
run: |
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This step is repeated, can we optimise this. Check if we can use cache here? Something like
uses: actions/cache@v4, This will decrease the run time almost by 1-2 minute.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

added a condition to check if the requirements exists

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

If a pull request exists, still this is redundant right ???

if: ${{ steps.cpr.outputs.pull-request-number == '' }}
run: |
echo "No changes detected; no PR opened. Skipping Percy run."
echo "pr_created=0" >> $GITHUB_OUTPUT

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

pr_created value is not used anywhere in the later code, is it required?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

removed

});

- name: Upload Percy logs
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
if: always() && ${{ steps.cpr.outputs.pull-request-number != '' }}
if: always() && steps.cpr.outputs.pull-request-number != ''

The statement inside of if is always treated as expression -- Check if we can use ^

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

resolved

@Shivanshu-07

Copy link
Copy Markdown

@pranavz28 have you tested this workflow? https://github.com/percy/example-percy-playwright-python/actions/runs/18311215267/workflow -> This workflow is failing, please check this.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pranavz28@Shivanshu-07