Skip to content

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

License

Notifications You must be signed in to change notification settings

LouisBrunner/diff-action

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-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 'true' is specified, requires token to be given as well

Outputs

passed

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

output

Contains the output of the diff