Files
openai.openai-go/scripts/utils/upload-artifact.sh
2026-03-05 18:12:45 +00:00

51 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -exuo pipefail
DIST_DIR="dist"
FILENAME="source.zip"
mapfile -d '' files < <(
find . -type f \
\( -name '*.go' -o -name 'go.mod' -o -name 'go.sum' \) \
! -path "./${DIST_DIR}/*" \
-print0
)
if [[ ${#files[@]} -eq 0 ]]; then
echo -e "\033[31mNo Go source files found for packaging.\033[0m"
exit 1
fi
mkdir -p "$DIST_DIR"
rm -f "${DIST_DIR}/${FILENAME}"
relative_files=()
for file in "${files[@]}"; do
relative_files+=("${file#./}")
done
zip "${DIST_DIR}/${FILENAME}" "${relative_files[@]}"
RESPONSE=$(curl -X POST "$URL?filename=$FILENAME" \
-H "Authorization: Bearer $AUTH" \
-H "Content-Type: application/json")
SIGNED_URL=$(echo "$RESPONSE" | jq -r '.url')
if [[ "$SIGNED_URL" == "null" ]]; then
echo -e "\033[31mFailed to get signed URL.\033[0m"
exit 1
fi
UPLOAD_RESPONSE=$(curl -v -X PUT \
-H "Content-Type: application/zip" \
--data-binary "@${DIST_DIR}/${FILENAME}" "$SIGNED_URL" 2>&1)
if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then
echo -e "\033[32mUploaded build to Stainless storage.\033[0m"
echo -e "\033[32mInstallation: Download and unzip: 'https://pkg.stainless.com/s/openai-go/$SHA'. Run 'go mod edit -replace github.com/openai/openai-go/v3=/path/to/unzipped_directory'.\033[0m"
else
echo -e "\033[31mFailed to upload artifact.\033[0m"
exit 1
fi