Skip to content
plus-square

GitHub Action

Smart Diff

v2.2.0 Latest version

Smart Diff

plus-square

Smart Diff

Perform a diff between two files given a tolerance and send notifications

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Smart Diff

uses: LouisBrunner/[email protected]

Learn more about this action in LouisBrunner/diff-action

Choose a version

GitHub Actions: diff-action build-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-latest
    steps:
    - uses: actions/checkout@v1
    - name: Check that the files are the exact same
      uses: LouisBrunner/[email protected]
      with:
        old: file1.txt
        new: file2.txt
        mode: strict
        tolerance: same
        output: out1.txt
    - name: Check that there are only additions in file2.txt
      uses: LouisBrunner/[email protected]
      with:
        old: file1.txt
        new: file2.txt
        mode: addition
        tolerance: better
        output: 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, requires token to be given as well

notify_issue

Optional Will create a comment in the linked issue if specified, requires token 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 everytime.

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

Contains the output of the diff