From f599d88d336fdf06f01f9bd24b6339954f7ba3e2 Mon Sep 17 00:00:00 2001 From: Justin Chadwell Date: Mon, 11 Nov 2024 10:03:49 -0700 Subject: [PATCH] chore: fix multiline output Signed-off-by: Justin Chadwell --- .github/workflows/test.yml | 24 ++++++++++++++++++++++-- action.yml | 11 ++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f8089d3..2eb27a4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,7 +28,7 @@ jobs: with: version: latest verb: core - args: container from --address=alpine with-exec --args echo,"hello world" stdout + args: container from --address=alpine with-exec --args echo,-n,"hello world" stdout - name: "Use output (check)" run: | target='${{ steps.use-output.outputs.output }}' @@ -40,13 +40,33 @@ jobs: exit 1 fi + - name: "Use trailing output" + id: use-trailing-output + uses: ./ + with: + version: latest + verb: core + args: container from --address=alpine with-exec --args echo,-n,-e,"hello world\n" stdout + - name: "Use output (check)" + run: | + target='${{ steps.use-trailing-output.outputs.output }}' + result='hello world + ' + if [[ "$target" == "$result" ]]; then + echo "matches" + exit 0 + else + echo "does not match" + exit 1 + fi + - name: "Use multiline output" id: use-multiline-output uses: ./ with: version: latest verb: core - args: container from --address=alpine with-exec --args echo,-e,"hello\nworld" stdout + args: container from --address=alpine with-exec --args echo,-n,-e,"hello\nworld" stdout - name: "Use output (check)" run: | target='${{ steps.use-multiline-output.outputs.output }}' diff --git a/action.yml b/action.yml index 4d33c03..1fa1223 100644 --- a/action.yml +++ b/action.yml @@ -83,7 +83,16 @@ runs: ${INPUT_MODULE:+-m $INPUT_MODULE} \ ${{ inputs.args }}; } | tee "${tmpout}" - (echo -n "stdout=" && cat "${tmpout}") >> "$GITHUB_OUTPUT" + { + # we need a delim that doesn't appear in the output - a hash of the + # file itself *probably* won't (if it does, we have larger + # cryptographic problems) + delim="$(sha256sum $tmpout | cut -d " " -f1)" + echo "stdout<<${delim}" + cat "${tmpout}" + echo + echo "${delim}" + } >> "$GITHUB_OUTPUT" - if: inputs.engine-stop == 'true' shell: bash