diff --git a/dev/create-release/do-release-docker.sh b/dev/create-release/do-release-docker.sh index 88398bc14dd02..ea3105b3d0a70 100755 --- a/dev/create-release/do-release-docker.sh +++ b/dev/create-release/do-release-docker.sh @@ -84,8 +84,8 @@ if [ ! -z "$RELEASE_STEP" ] && [ "$RELEASE_STEP" = "finalize" ]; then error "Exiting." fi - if [ -z "$PYPI_PASSWORD" ]; then - stty -echo && printf "PyPi password: " && read PYPI_PASSWORD && printf '\n' && stty echo + if [ -z "$PYPI_API_TOKEN" ]; then + stty -echo && printf "PyPi API token: " && read PYPI_API_TOKEN && printf '\n' && stty echo fi fi @@ -142,7 +142,7 @@ GIT_NAME=$GIT_NAME GIT_EMAIL=$GIT_EMAIL GPG_KEY=$GPG_KEY ASF_PASSWORD=$ASF_PASSWORD -PYPI_PASSWORD=$PYPI_PASSWORD +PYPI_API_TOKEN=$PYPI_API_TOKEN GPG_PASSPHRASE=$GPG_PASSPHRASE RELEASE_STEP=$RELEASE_STEP USER=$USER diff --git a/dev/create-release/release-build.sh b/dev/create-release/release-build.sh index e0588ae934cd2..99841916cf293 100755 --- a/dev/create-release/release-build.sh +++ b/dev/create-release/release-build.sh @@ -95,8 +95,8 @@ init_java init_maven_sbt if [[ "$1" == "finalize" ]]; then - if [[ -z "$PYPI_PASSWORD" ]]; then - error 'The environment variable PYPI_PASSWORD is not set. Exiting.' + if [[ -z "$PYPI_API_TOKEN" ]]; then + error 'The environment variable PYPI_API_TOKEN is not set. Exiting.' fi git config --global user.name "$GIT_NAME" @@ -104,22 +104,27 @@ if [[ "$1" == "finalize" ]]; then # Create the git tag for the new release echo "Creating the git tag for the new release" - rm -rf spark - git clone "https://$ASF_USERNAME:$ASF_PASSWORD@$ASF_SPARK_REPO" -b master - cd spark - git tag "v$RELEASE_VERSION" "$RELEASE_TAG" - git push origin "v$RELEASE_VERSION" - cd .. - rm -rf spark - echo "git tag v$RELEASE_VERSION created" + if check_for_tag "v$RELEASE_VERSION"; then + echo "v$RELEASE_VERSION already exists. Skip creating it." + else + rm -rf spark + git clone "https://$ASF_USERNAME:$ASF_PASSWORD@$ASF_SPARK_REPO" -b master + cd spark + git tag "v$RELEASE_VERSION" "$RELEASE_TAG" + git push origin "v$RELEASE_VERSION" + cd .. + rm -rf spark + echo "git tag v$RELEASE_VERSION created" + fi # download PySpark binary from the dev directory and upload to PyPi. echo "Uploading PySpark to PyPi" svn co --depth=empty "$RELEASE_STAGING_LOCATION/$RELEASE_TAG-bin" svn-spark cd svn-spark - svn update "pyspark-$RELEASE_VERSION.tar.gz" - svn update "pyspark-$RELEASE_VERSION.tar.gz.asc" - TWINE_USERNAME=spark-upload TWINE_PASSWORD="$PYPI_PASSWORD" twine upload \ + PYSPARK_VERSION=`echo "$RELEASE_VERSION" | sed -e "s/-/./" -e "s/preview/dev/"` + svn update "pyspark-$PYSPARK_VERSION.tar.gz" + svn update "pyspark-$PYSPARK_VERSION.tar.gz.asc" + twine upload -u __token__ -p $PYPI_API_TOKEN \ --repository-url https://upload.pypi.org/legacy/ \ "pyspark-$RELEASE_VERSION.tar.gz" \ "pyspark-$RELEASE_VERSION.tar.gz.asc"