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