Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 12 additions & 24 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,42 +11,30 @@ if [ -z "${INPUT_APP:-}" ]; then
fi

echo "Deploying"
if [ -n "$INPUT_PASSWORD" ]
then
export CONVOX_PASSWORD="$INPUT_PASSWORD"
fi
if [ -n "$INPUT_HOST" ]
then
export CONVOX_HOST="$INPUT_HOST"
fi
export CONVOX_RACK="$INPUT_RACK"

# Initialize variables for the command options
CACHED_COMMAND=""
MANIFEST_COMMAND=""

if [ "$INPUT_CACHED" = "false" ]; then
CACHED_COMMAND="--no-cache"
fi
# Export Convox environment variables
[ -n "$INPUT_PASSWORD" ] && export CONVOX_PASSWORD="$INPUT_PASSWORD"
[ -n "$INPUT_HOST" ] && export CONVOX_HOST="$INPUT_HOST"
export CONVOX_RACK="$INPUT_RACK"

if [ "$INPUT_MANIFEST" != "" ]; then
MANIFEST_COMMAND="-m $INPUT_MANIFEST"
fi
# Build optional flags
ARGS=""
[ "$INPUT_CACHED" = "false" ] && ARGS="$ARGS --no-cache"
[ -n "$INPUT_MANIFEST" ] && ARGS="$ARGS -m $INPUT_MANIFEST"

# Split the INPUT_BUILDARGS by newline into an array
if [ "$INPUT_BUILDARGS" != "" ]; then
IFS=$'\n' read -d '' -r -a ADDR <<< "$INPUT_BUILDARGS" # Split build arguments by newline
IFS=$'\n' read -d '' -r -a ADDR <<< "$INPUT_BUILDARGS"

for ARG in "${ADDR[@]}"; do
# Extract key and value (handle empty lines or invalid format)
KEY=${ARG%%=*}
VALUE=${ARG#*=}
if [[ -n "$KEY" && -n "$VALUE" ]]; then
BUILDARGS_COMMAND="$BUILDARGS_COMMAND --build-args $KEY=$VALUE"
ARGS="$ARGS --build-args $KEY=$VALUE"
fi
done
fi

# shellcheck disable=SC2086
# BUILDARGS_COMMAND/CACHED_COMMAND/MANIFEST_COMMAND are intentionally unquoted (word-split, may be empty)
convox deploy --app "$INPUT_APP" --description "$INPUT_DESCRIPTION" $BUILDARGS_COMMAND $CACHED_COMMAND $MANIFEST_COMMAND
# ARGS is intentionally unquoted (word-split, may be empty)
convox deploy --app "$INPUT_APP" --description "$INPUT_DESCRIPTION" $ARGS --wait