Skip to content

Commit

Permalink
[SPARK-31860][BUILD] only push release tags on succes
Browse files Browse the repository at this point in the history
### What changes were proposed in this pull request?

Only push the release tag after the build has finished.

### Why are the changes needed?

If the build fails we don't need a release tag.

### Does this PR introduce _any_ user-facing change?
No

### How was this patch tested?
Running locally with a fake user in #28667

Closes #28700 from holdenk/SPARK-31860-build-master-only-push-tags-on-success.

Authored-by: Holden Karau <hkarau@apple.com>
Signed-off-by: Holden Karau <hkarau@apple.com>
  • Loading branch information
holdenk committed Jun 2, 2020
1 parent e5c3463 commit 69ba9b6
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 18 deletions.
14 changes: 11 additions & 3 deletions dev/create-release/do-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
# limitations under the License.
#

set -e

SELF=$(cd $(dirname $0) && pwd)
. "$SELF/release-util.sh"

Expand Down Expand Up @@ -52,9 +54,6 @@ function should_build {
if should_build "tag" && [ $SKIP_TAG = 0 ]; then
run_silent "Creating release tag $RELEASE_TAG..." "tag.log" \
"$SELF/release-tag.sh"
echo "It may take some time for the tag to be synchronized to github."
echo "Press enter when you've verified that the new tag ($RELEASE_TAG) is available."
read
else
echo "Skipping tag creation for $RELEASE_TAG."
fi
Expand All @@ -79,3 +78,12 @@ if should_build "publish"; then
else
echo "Skipping publish step."
fi

if should_build "tag" && [ $SKIP_TAG = 0 ]; then
git push origin $RELEASE_TAG
if [[ $RELEASE_TAG != *"preview"* ]]; then
git push origin HEAD:$GIT_BRANCH
else
echo "It's preview release. We only push $RELEASE_TAG to remote."
fi
fi
7 changes: 5 additions & 2 deletions dev/create-release/release-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,12 @@ BASE_DIR=$(pwd)
init_java
init_maven_sbt

rm -rf spark
git clone "$ASF_REPO"
# Only clone repo fresh if not present, otherwise use checkout from the tag step
if [ ! -d spark ]; then
git clone "$ASF_REPO"
fi
cd spark
git fetch
git checkout $GIT_REF
git_hash=`git rev-parse --short HEAD`
echo "Checked out Spark git hash $git_hash"
Expand Down
16 changes: 3 additions & 13 deletions dev/create-release/release-tag.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ function exit_with_usage {
cat << EOF
usage: $NAME
Tags a Spark release on a particular branch.
You must push the tags after.
Inputs are specified with the following environment variables:
ASF_USERNAME - Apache Username
Expand Down Expand Up @@ -105,19 +106,8 @@ sed -i".tmp7" 's/SPARK_VERSION_SHORT:.*$/SPARK_VERSION_SHORT: '"$R_NEXT_VERSION"

git commit -a -m "Preparing development version $NEXT_VERSION"

if ! is_dry_run; then
# Push changes
git push origin $RELEASE_TAG
if [[ $RELEASE_VERSION != *"preview"* ]]; then
git push origin HEAD:$GIT_BRANCH
else
echo "It's preview release. We only push $RELEASE_TAG to remote."
fi

cd ..
rm -rf spark
else
cd ..
cd ..
if is_dry_run; then
mv spark spark.tag
echo "Clone with version changes and tag available as spark.tag in the output directory."
fi

0 comments on commit 69ba9b6

Please sign in to comment.