83 lines
2.6 KiB
YAML
83 lines
2.6 KiB
YAML
name: compare-tgz
|
|
description: "Compare the contents of two .tgz files."
|
|
inputs:
|
|
lhs:
|
|
description: "Left hand side .tgz file."
|
|
required: true
|
|
rhs:
|
|
description: "Right hand side .tgz file."
|
|
required: true
|
|
comparePackageJson:
|
|
description: "Whether or not to compare the package.json file."
|
|
required: true
|
|
default: "false"
|
|
exitOnFail:
|
|
description: "Should the program exit on a failure."
|
|
required: true
|
|
default: "false"
|
|
tmpDir:
|
|
description: "Temporary directory. Default: _tmp"
|
|
required: true
|
|
default: _tmp
|
|
outputs:
|
|
success:
|
|
description: "The result of the comparison."
|
|
value: ${{ steps.compare.outputs.success == 'true' && ( inputs.comparePackageJson == 'false' || steps.compare-package-json.outputs.success == 'true' ) }}
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: "Make temporary directory for lhs extraction"
|
|
id: mktemp-lhs
|
|
uses: act/common/utils/mktemp@master
|
|
with:
|
|
outputType: dir
|
|
tmpDir: ${{ inputs.tmpDir }}
|
|
- name: "Make temporary directory for rhs extraction"
|
|
id: mktemp-rhs
|
|
uses: act/common/utils/mktemp@master
|
|
with:
|
|
outputType: dir
|
|
tmpDir: ${{ inputs.tmpDir }}
|
|
- name: "Extract lhs."
|
|
uses: act/common/utils/extract@master
|
|
with:
|
|
file: ${{ inputs.lhs }}
|
|
outputDir: ${{ steps.mktemp-lhs.outputs.tmp }}
|
|
- name: "Extract rhs."
|
|
uses: act/common/utils/extract@master
|
|
with:
|
|
file: ${{ inputs.rhs }}
|
|
outputDir: ${{ steps.mktemp-rhs.outputs.tmp }}
|
|
- name: "Get shasum for lhs."
|
|
id: lhs-shasum
|
|
uses: act/common/utils/shasum-files@master
|
|
with:
|
|
directory: ${{ steps.mktemp-lhs.outputs.tmp }}
|
|
pattern: "*"
|
|
- name: "Get shasum for rhs."
|
|
id: rhs-shasum
|
|
uses: act/common/utils/shasum-files@master
|
|
with:
|
|
directory: ${{ steps.mktemp-rhs.outputs.tmp }}
|
|
pattern: "*"
|
|
- name: "Compare lhs and rhs."
|
|
id: compare
|
|
uses: act/common/utils/compare@master
|
|
with:
|
|
expected: ${{ steps.lhs-shasum.outputs.sums }}
|
|
actual: ${{ steps.rhs-shasum.outputs.sums }}
|
|
exitOnFail: ${{ inputs.exitOnFail }}
|
|
- name: "Compare package.json files."
|
|
id: compare-package-json
|
|
if: ${{ inputs.comparePackageJson == 'true' }}
|
|
uses: act/common/utils/compare-files@master
|
|
with:
|
|
expected: ${{ steps.mktemp-lhs.outputs.tmp }}
|
|
expectedPattern: /*/package.json
|
|
actual: ${{ steps.mktemp-rhs.outputs.tmp }}
|
|
actualPattern: /*/package.json
|
|
exitOnFail: ${{ inputs.exitOnFail }}
|
|
- name: "Remove temporary files."
|
|
run: rm -rf "${{ inputs.tmpDir }}"
|
|
shell: bash
|