Files
common/utils/compare-files/action.yaml
2025-06-24 15:24:16 -07:00

49 lines
1.5 KiB
YAML

name: compare-files
description: "Compare the output of a command to an expected value."
inputs:
expected:
description: "Expected output file."
required: true
expectedPattern:
description: "Optional pattern to match files in the expected directory."
required: false
actual:
description: "Actual output file."
required: true
actualPattern:
description: "Optional pattern to match files in the actual directory."
required: false
exitOnFail:
description: "Should the program exit on a failure."
required: true
default: "true"
outputs:
success:
description: "The result of the comparison."
value: ${{ steps.compare.outputs.success }}
runs:
using: "composite"
steps:
- name: "Read files."
id: read
run: |
LHS_NUSPEC=$(cat "${{ inputs.expected }}"${{ inputs.expectedPattern }})
RHS_NUSPEC=$(cat "${{ inputs.actual }}"${{ inputs.actualPattern }})
if [[ -n "$LHS_NUSPEC" ]]; then
echo "lhs<<EOF" >> "$GITHUB_OUTPUT"
echo "$LHS_NUSPEC" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
fi
if [[ -n "$RHS_NUSPEC" ]]; then
echo "rhs<<EOF" >> "$GITHUB_OUTPUT"
echo "$RHS_NUSPEC" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
fi
shell: bash
- name: "Build matrix from yaml."
uses: act/common/utils/compare@master
with:
expected: ${{ steps.read.outputs.lhs }}
actual: ${{ steps.read.outputs.rhs }}
exitOnFail: ${{ inputs.exitOnFail }}