From 90c21f6cf3d80d35139c1a4b15864f82004a7277 Mon Sep 17 00:00:00 2001 From: Igor Rodionov Date: Thu, 1 Dec 2022 17:29:38 +0300 Subject: [PATCH] Test multiple outputs (#7) --- .github/workflows/test-positive.yml | 6 +++++ action.yml | 40 +++++++++++++++++++---------- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/.github/workflows/test-positive.yml b/.github/workflows/test-positive.yml index f5aee9dd..f642945c 100644 --- a/.github/workflows/test-positive.yml +++ b/.github/workflows/test-positive.yml @@ -27,12 +27,18 @@ jobs: matrix-key: ${{ matrix.target }} outputs: |- result: ${{ matrix.target }} + test: existing_value - uses: nick-fields/assert-action@v1 with: expected: ${{ matrix.target }} actual: ${{ fromJson(steps.writer.outputs.result).result }} + - uses: nick-fields/assert-action@v1 + with: + expected: existing_value + actual: ${{ fromJson(steps.writer.outputs.result).test }} + test: runs-on: ubuntu-latest continue-on-error: true diff --git a/action.yml b/action.yml index c7284d33..88131bf2 100644 --- a/action.yml +++ b/action.yml @@ -35,26 +35,40 @@ runs: actual: "${{ inputs.matrix-key }}" comparison: notEqual - - uses: cloudposse/github-action-yaml-config-query@0.1.0 - id: proxy + - name: 'Install jq 1.6' + uses: dcarbone/install-jq-action@v1.0.1 with: - query: . - config: |- - result: - ${{ inputs.outputs }} + version: 1.6 + force: 'true' - - uses: cloudposse/github-action-yaml-config-query@0.1.0 - id: write + - name: 'Setup yq' + uses: dcarbone/install-yq-action@v1.0.0 + with: + version: v4.28.1 + download-compressed: true + force: true + + - shell: bash + id: proxy + run: |- + JSON=$(echo "${{ inputs.outputs }}" | yq '. + {}' -o json | jq . -c -M -e) + echo "result=${JSON}" >> $GITHUB_OUTPUT + + - uses: cloudposse/github-action-yaml-config-query@0.1.1 + id: mask with: query: .${{ inputs.matrix-key == '' }} config: |- true: - result: - ${{ inputs.outputs }} + mask: ". + {}" false: - result: - ${{ inputs.matrix-key || 'null' }}: - ${{ inputs.outputs }} + mask: "{\"${{ inputs.matrix-key}}\": . + {}}" + + - shell: bash + id: write + run: |- + JSON=$(echo "${{ inputs.outputs }}" | yq '${{ steps.mask.outputs.mask }}' -o json | jq . -c -M -e) + echo "result=${JSON}" >> $GITHUB_OUTPUT - shell: bash if: ${{ inputs.outputs != '' && inputs.matrix-step-name != '' }}