Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, '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" + '
GitHub - LouisBrunner/diff-action: GitHub Action that compares two files, add tolerances, send notifications, etc · GitHub
Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, '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('^' + ".*" + ' GitHub - LouisBrunner/diff-action: GitHub Action that compares two files, add tolerances, send notifications, etc · GitHub
Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, '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('^' + ".*" + ' GitHub - LouisBrunner/diff-action: GitHub Action that compares two files, add tolerances, send notifications, etc · GitHub
Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, '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" + ' GitHub - LouisBrunner/diff-action: GitHub Action that compares two files, add tolerances, send notifications, etc · GitHub
Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, '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('^' + ".*" + ' GitHub - LouisBrunner/diff-action: GitHub Action that compares two files, add tolerances, send notifications, etc · GitHub
Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, '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('^' + ".*" + ' GitHub - LouisBrunner/diff-action: GitHub Action that compares two files, add tolerances, send notifications, etc · GitHub
Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, '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); } })(); })(); GitHub - LouisBrunner/diff-action: GitHub Action that compares two files, add tolerances, send notifications, etc · GitHub
Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Actions: diff-actionbuild-test

This GitHub Action allows you to compare two files based on a tolerance, output the result to a file and send various notifications (comment on a linked GitHub issue/pull request, create a Check Run, ...), etc.

Usage

The following shows how to compare two files, making sure only additions happened, and output the difference to a file.

name: "build-test"on: [push]jobs:
test_something:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v1
- name: Check that the files are the exact sameuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: stricttolerance: sameoutput: out1.txt
- name: Check that there are only additions in file2.txtuses: LouisBrunner/diff-action@v2.0.0with:
old: file1.txtnew: file2.txtmode: additiontolerance: betteroutput: out2.txt

See the examples workflow for more details and examples (and see the associated runs to see how it will look like).

Inputs

old

Required The first file to compare

new

Required The second file to compare

mode

Optional The method used to measure the tolerance, can be either:

  • strict (default): the files must be exactly the same, only tolerance: same is allowed (which is the default)
  • addition: addition are better
  • deletion: deletion are better

tolerance

Optional The tolerance to check the diff for, depends on mode, can be either (examples given with mode = deletion) better (only deletion), mixed-better (more deletion than addition), same (stay the exact same), mixed (same amount of lines but not the same), mixed-worse (more addition than deletion) or worse (only addition).

Default is same.

output

Optional The path where to output the diff (as well as on the console)

token

Optional Your GITHUB_TOKEN, required when using notify_check and/or notify_issue

title

Optional add a title to the notifications to distinguish between multiple workflows/jobs

notify_check

Optional Will create a GitHub Check Run if 'true' is specified, requirestoken to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requirestoken to be given as well.

Possible values:

  • always / true: will always create a comment (note: true is deprecated in favor of always)
  • failure: will only create a comment if the check fails
  • success: will only create a comment if the check passes

sticky_comment

Optional When using notify_issue: true, will edit the created comment instead of creating a new one every time.

Note that the updated comment is based on the title. Thus:

  • if you call the action multiple times in your workflow, make sure the titles are unique to each call to avoid overwriting the same comment
  • make sure the titles are the same between different calls to the action if you want to update the same comment

Outputs

passed

Contains a boolean ('true' or 'false') representing if the check passed or not

output (diff)

Contains the output of the diff

About

GitHub Action that compares two files, add tolerances, send notifications, etc

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages