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