-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-13474][PROJECT INFRA] Update packaging scripts to push artifacts to home.apache.org #11350
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
4d07db4
a458221
3a7b283
19d6e22
e43f7ac
1bb9e02
52fedd0
fc80ac7
1aed97e
fde8346
b73a471
9ef4561
36c3466
e448ae6
dd2766a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -23,8 +23,8 @@ usage: release-build.sh <package|docs|publish-snapshot|publish-release> | |
| Creates build deliverables from a Spark commit. | ||
|
|
||
| Top level targets are | ||
| package: Create binary packages and copy them to people.apache | ||
| docs: Build docs and copy them to people.apache | ||
| package: Create binary packages and copy them to home.apache | ||
| docs: Build docs and copy them to home.apache | ||
| publish-snapshot: Publish snapshot release to Apache snapshots | ||
| publish-release: Publish a release to Apache release repo | ||
|
|
||
|
|
@@ -64,13 +64,16 @@ for env in ASF_USERNAME ASF_RSA_KEY GPG_PASSPHRASE GPG_KEY; do | |
| fi | ||
| done | ||
|
|
||
| # Explicitly set locale in order to make `sort` output consistent across machines. | ||
| # See https://stackoverflow.com/questions/28881 for more details. | ||
| export LC_ALL=C | ||
|
|
||
| # Commit ref to checkout when building | ||
| GIT_REF=${GIT_REF:-master} | ||
|
|
||
| # Destination directory parent on remote server | ||
| REMOTE_PARENT_DIR=${REMOTE_PARENT_DIR:-/home/$ASF_USERNAME/public_html} | ||
|
|
||
| SSH="ssh -o ConnectTimeout=300 -o StrictHostKeyChecking=no -i $ASF_RSA_KEY" | ||
| GPG="gpg --no-tty --batch" | ||
| NEXUS_ROOT=https://repository.apache.org/service/local/staging | ||
| NEXUS_PROFILE=d63f592e7eac0 # Profile for Spark staging uploads | ||
|
|
@@ -97,18 +100,24 @@ if [ -z "$SPARK_PACKAGE_VERSION" ]; then | |
| fi | ||
|
|
||
| DEST_DIR_NAME="spark-$SPARK_PACKAGE_VERSION" | ||
| USER_HOST="[email protected]" | ||
|
|
||
| function LFTP { | ||
| COMMANDS="set sftp:auto-confirm true && connect -u $ASF_USERNAME,p sftp://home.apache.org && $@" | ||
| lftp --norc -c "$COMMANDS" | ||
| } | ||
| export -f LFTP | ||
|
|
||
|
|
||
| git clean -d -f -x | ||
| rm .gitignore | ||
| rm -rf .git | ||
| cd .. | ||
|
|
||
| if [ -n "$REMOTE_PARENT_MAX_LENGTH" ]; then | ||
| old_dirs=$($SSH $USER_HOST ls -t $REMOTE_PARENT_DIR | tail -n +$REMOTE_PARENT_MAX_LENGTH) | ||
| old_dirs=$(LFTP nlist $REMOTE_PARENT_DIR | sort | head -n +$REMOTE_PARENT_MAX_LENGTH) | ||
| for old_dir in $old_dirs; do | ||
| echo "Removing directory: $old_dir" | ||
| $SSH $USER_HOST rm -r $REMOTE_PARENT_DIR/$old_dir | ||
| LFTP rm -r $REMOTE_PARENT_DIR/$old_dir | ||
| done | ||
| fi | ||
|
|
||
|
|
@@ -178,11 +187,11 @@ if [[ "$1" == "package" ]]; then | |
| # Copy data | ||
| dest_dir="$REMOTE_PARENT_DIR/${DEST_DIR_NAME}-bin" | ||
| echo "Copying release tarballs to $dest_dir" | ||
| $SSH $USER_HOST mkdir $dest_dir | ||
| rsync -e "$SSH" spark-* $USER_HOST:$dest_dir | ||
| LFTP mkdir -p $dest_dir | ||
| LFTP mput spark-* $dest_dir | ||
| echo "Linking /latest to $dest_dir" | ||
| $SSH $USER_HOST rm -f "$REMOTE_PARENT_DIR/latest" | ||
| $SSH $USER_HOST ln -s $dest_dir "$REMOTE_PARENT_DIR/latest" | ||
| LFTP rm "$REMOTE_PARENT_DIR/latest" | ||
| LFTP ln -s $dest_dir "$REMOTE_PARENT_DIR/latest" | ||
|
||
| exit 0 | ||
| fi | ||
|
|
||
|
|
@@ -196,11 +205,11 @@ if [[ "$1" == "docs" ]]; then | |
| # TODO: Make configurable to add this: PRODUCTION=1 | ||
| PRODUCTION=1 RELEASE_VERSION="$SPARK_VERSION" jekyll build | ||
| echo "Copying release documentation to $dest_dir" | ||
| $SSH $USER_HOST mkdir $dest_dir | ||
| LFTP mkdir -p $dest_dir | ||
| echo "Linking /latest to $dest_dir" | ||
| $SSH $USER_HOST rm -f "$REMOTE_PARENT_DIR/latest" | ||
| $SSH $USER_HOST ln -s $dest_dir "$REMOTE_PARENT_DIR/latest" | ||
| rsync -e "$SSH" -r _site/* $USER_HOST:$dest_dir | ||
| LFTP rm "$REMOTE_PARENT_DIR/latest" | ||
| LFTP ln -s $dest_dir "$REMOTE_PARENT_DIR/latest" | ||
| LFTP mput _site/* $dest_dir | ||
| cd .. | ||
| exit 0 | ||
| fi | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It turns out that
nlistwill return./and../, so we need to filter those out here.