diff --git a/actions/deploy-lambda-function/upload-lambda.bats b/actions/deploy-lambda-function/upload-lambda.bats index 090fe2ce..f4a89c9b 100644 --- a/actions/deploy-lambda-function/upload-lambda.bats +++ b/actions/deploy-lambda-function/upload-lambda.bats @@ -75,3 +75,13 @@ function aws() { [ -f "$GITHUB_OUTPUT" ] [ "$(< "$GITHUB_OUTPUT")" = "s3-key=/$S3_KEY" ] } + +@test "it should expand wildcards" { + S3_KEY=artifact.zip + + run upload-lambda "$BATS_TEST_TMPDIR/*.zip" "$S3_BUCKET" "$S3_KEY" + + [ "$status" -eq 0 ] + [ -f "$AWS_CMD_FILE" ] + [ "$(< "$AWS_CMD_FILE")" = "s3 cp $ZIP_FILE s3://$S3_BUCKET/$S3_KEY" ] +} diff --git a/actions/deploy-lambda-function/upload-lambda.sh b/actions/deploy-lambda-function/upload-lambda.sh index bf1d0ee9..60b8b112 100755 --- a/actions/deploy-lambda-function/upload-lambda.sh +++ b/actions/deploy-lambda-function/upload-lambda.sh @@ -8,10 +8,19 @@ function upload-lambda() { echo "[ERROR] Zip file is required" >&2 return 1 } + # resolve zip file if wildcard + [ "$zip_file" = "${zip_file#*\*}" ] || { + echo "[DEBUG] Found a wildcard file" >&2 + local pre_wildcard="${zip_file%\**}" + local post_wildcard="${zip_file#*\*}" + zip_file="$(builtin echo "$pre_wildcard"*"$post_wildcard")" + echo "[DEBUG] Expanded '$pre_wildcard*$post_wildcard' to $zip_file" >&2 + } [ -f "$zip_file" ] || { echo "[ERROR] Cannot find zip file: $zip_file" >&2 return 2 } + local s3_bucket="${2:-}" [ -n "$s3_bucket" ] || { echo "[ERROR] S3 bucket is required" >&2