mirror of
https://github.com/dagger/dagger-for-github.git
synced 2026-01-01 13:10:18 +11:00
Proper support for shell input (#189)
* add options for shell Signed-off-by: kpenfound <kyle@dagger.io> assemble dagger command in new step with output Signed-off-by: kpenfound <kyle@dagger.io> fixing some inline bash Signed-off-by: kpenfound <kyle@dagger.io> wrap conditional inputs in quotes Signed-off-by: kpenfound <kyle@dagger.io> use cat for heredoc script file Signed-off-by: kpenfound <kyle@dagger.io> missing space in heredoc Signed-off-by: kpenfound <kyle@dagger.io> add tab ignore and dagger shebang Signed-off-by: kpenfound <kyle@dagger.io> use toJson and jq to safely write the shell input to a file Signed-off-by: kpenfound <kyle@dagger.io> put DAGGER_COMMAND in a variable Signed-off-by: kpenfound <kyle@dagger.io> missing semicolon for the dagger command Signed-off-by: kpenfound <kyle@dagger.io> safely evaluate if shell is set Signed-off-by: kpenfound <kyle@dagger.io> extra > in shell file write Signed-off-by: kpenfound <kyle@dagger.io> add some logging Signed-off-by: kpenfound <kyle@dagger.io> strip extra newline from jq when shell is not set Signed-off-by: kpenfound <kyle@dagger.io> debugging Signed-off-by: kpenfound <kyle@dagger.io> toJSON and jq will send null instead of empty string with no input Signed-off-by: kpenfound <kyle@dagger.io> safely handle all inputs Signed-off-by: kpenfound <kyle@dagger.io> did i fix the wrong thing? Signed-off-by: kpenfound <kyle@dagger.io> change up the approach a bit for an easier diff Signed-off-by: kpenfound <kyle@dagger.io> fix shell test Signed-off-by: kpenfound <kyle@dagger.io> single quotes around shell input Signed-off-by: kpenfound <kyle@dagger.io> try with piped input Signed-off-by: kpenfound <kyle@dagger.io> try single quotes again Signed-off-by: kpenfound <kyle@dagger.io> debug Signed-off-by: kpenfound <kyle@dagger.io> debug Signed-off-by: kpenfound <kyle@dagger.io> fix shell test Signed-off-by: kpenfound <kyle@dagger.io> does shell emit a newline? Signed-off-by: kpenfound <kyle@dagger.io> remove the trailing newline if its in stdout Signed-off-by: kpenfound <kyle@dagger.io> break the trailing output test Signed-off-by: kpenfound <kyle@dagger.io> fix shell test Signed-off-by: kpenfound <kyle@dagger.io> missed ! Signed-off-by: kpenfound <kyle@dagger.io> add comment about weird test Signed-off-by: kpenfound <kyle@dagger.io> * use echo -n in shell test Signed-off-by: kpenfound <kyle@dagger.io> --------- Signed-off-by: kpenfound <kyle@dagger.io>
This commit is contained in:
parent
710906f307
commit
4e0ad19142
3 changed files with 58 additions and 7 deletions
27
action.yml
27
action.yml
|
|
@ -40,6 +40,10 @@ inputs:
|
|||
description: "Function and arguments for dagger call"
|
||||
required: false
|
||||
default: ""
|
||||
shell:
|
||||
description: "Function and arguments for dagger shell"
|
||||
required: false
|
||||
default: ""
|
||||
outputs:
|
||||
output:
|
||||
description: "Job output"
|
||||
|
|
@ -75,8 +79,25 @@ runs:
|
|||
curl -fsS https://dl.dagger.io/dagger/install.sh \
|
||||
| BIN_DIR=${prefix_dir}/bin DAGGER_VERSION="$VERSION" DAGGER_COMMIT="$COMMIT" sh
|
||||
|
||||
- id: assemble
|
||||
if: inputs.call != '' || inputs.shell != '' || inputs.args != ''
|
||||
shell: bash
|
||||
env:
|
||||
INPUT_MODULE: ${{ inputs.module }}
|
||||
run: |
|
||||
verb=${{ inputs.verb }}
|
||||
shell=$(echo '${{ toJSON(inputs.shell) }}' | jq -rj .)
|
||||
if [[ -n "${{ inputs.call }}" ]]; then
|
||||
verb="call"
|
||||
elif [[ "$shell" != "" ]]; then
|
||||
verb=""
|
||||
script=$(mktemp)
|
||||
printf '%s' "$shell" > $script
|
||||
fi
|
||||
echo "script=$script" >> "$GITHUB_OUTPUT"
|
||||
echo "verb=$verb" >> "$GITHUB_OUTPUT"
|
||||
- id: exec
|
||||
if: inputs.call != '' || inputs.args != ''
|
||||
if: inputs.call != '' || inputs.shell != '' || inputs.args != ''
|
||||
shell: bash
|
||||
env:
|
||||
INPUT_MODULE: ${{ inputs.module }}
|
||||
|
|
@ -87,9 +108,9 @@ runs:
|
|||
DAGGER_CLOUD_TOKEN=${{ inputs.cloud-token }} \
|
||||
dagger \
|
||||
${{ inputs.dagger-flags }} \
|
||||
${{ inputs.verb }} \
|
||||
${{ steps.assemble.outputs.verb }} \
|
||||
${INPUT_MODULE:+-m $INPUT_MODULE} \
|
||||
${{ inputs.args || inputs.call }}; } 1> >(tee "${tmpout}") 2> >(tee "${tmperr}" >&2)
|
||||
${{ inputs.args || inputs.call || steps.assemble.outputs.script }}; } 1> >(tee "${tmpout}") 2> >(tee "${tmperr}" >&2)
|
||||
|
||||
{
|
||||
# we need a delim that doesn't appear in the output - a hash of the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue