blob: 3c19e8237a574751aebeb614dd21140d303e4cb2 [file] [log] [blame]
#!/usr/bin/env bash
################################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
################################################################################
# fail on errors
set -e
#
# Deploys snapshot builds to Apache's snapshot repository.
#
function getVersion() {
here="`dirname \"$0\"`" # relative
here="`( cd \"$here\" && pwd )`" # absolutized and normalized
if [ -z "$here" ] ; then
# error; for some reason, the path is not accessible
# to the script (e.g. permissions re-evaled after suid)
exit 1 # fail
fi
flink_home="`dirname \"$here\"`"
cd "$flink_home"
echo `mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep -E '^([0-9]+.[0-9]+(.[0-9]+)?(-[a-zA-Z0-9]+)?)$'`
}
function deploy_to_s3() {
CURRENT_FLINK_VERSION=$1
HD=$2
echo "Installing artifacts deployment script"
export ARTIFACTS_DEST="$HOME/bin/artifacts"
curl -sL https://raw.githubusercontent.com/travis-ci/artifacts/master/install | bash
PATH="$(dirname "$ARTIFACTS_DEST"):$PATH"
echo "Deploying flink version $CURRENT_FLINK_VERSION (hadoop=$HD) to s3:"
mkdir flink-$CURRENT_FLINK_VERSION
cp -r flink-dist/target/flink-*-bin/flink-$CURRENT_FLINK_VERSION*/* flink-$CURRENT_FLINK_VERSION/
tar -czf flink-$CURRENT_FLINK_VERSION-bin-$HD.tgz flink-$CURRENT_FLINK_VERSION
artifacts upload \
--bucket $ARTIFACTS_S3_BUCKET \
--key $ARTIFACTS_AWS_ACCESS_KEY_ID \
--secret $ARTIFACTS_AWS_SECRET_ACCESS_KEY \
--target-paths / \
flink-$CURRENT_FLINK_VERSION-bin-$HD.tgz
# delete files again
rm -rf flink-$CURRENT_FLINK_VERSION
rm flink-$CURRENT_FLINK_VERSION-bin-$HD.tgz
}
pwd
echo "install lifecylce mapping fake plugin"
git clone https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin.git
cd dummy-lifecycle-mapping-plugin
mvn -B install
cd ..
rm -rf dummy-lifecycle-mapping-plugin
CURRENT_FLINK_VERSION=`getVersion`
if [[ "$CURRENT_FLINK_VERSION" == *-SNAPSHOT ]]; then
CURRENT_FLINK_VERSION_HADOOP1=${CURRENT_FLINK_VERSION/-SNAPSHOT/-hadoop1-SNAPSHOT}
else
CURRENT_FLINK_VERSION_HADOOP1="$CURRENT_FLINK_VERSION-hadoop1"
fi
echo "detected current version as: '$CURRENT_FLINK_VERSION' ; hadoop1: $CURRENT_FLINK_VERSION_HADOOP1 "
#
# This script deploys our project to sonatype SNAPSHOTS.
# It will deploy both a hadoop v1 and a hadoop v2 (yarn) artifact
#
if [[ $CURRENT_FLINK_VERSION == *SNAPSHOT* ]] ; then
MVN_SNAPSHOT_OPTS="-B -Pdocs-and-source -DskipTests -Drat.skip=true -Drat.ignoreErrors=true \
-DretryFailedDeploymentCount=10 --settings deploysettings.xml clean deploy"
# Deploy hadoop v1 to maven
echo "Generating poms for hadoop1"
./tools/generate_specific_pom.sh $CURRENT_FLINK_VERSION $CURRENT_FLINK_VERSION_HADOOP1 pom.hadoop1.xml
mvn -f pom.hadoop1.xml ${MVN_SNAPSHOT_OPTS}
# deploy to s3
deploy_to_s3 $CURRENT_FLINK_VERSION "hadoop1"
# hadoop2 scala 2.10
echo "deploy standard version (hadoop2) for scala 2.10"
mvn ${MVN_SNAPSHOT_OPTS}
deploy_to_s3 $CURRENT_FLINK_VERSION "hadoop2"
# hadoop2 scala 2.11
echo "deploy hadoop2 version (standard) for scala 2.11"
./tools/change-scala-version.sh 2.11
mvn ${MVN_SNAPSHOT_OPTS}
deploy_to_s3 $CURRENT_FLINK_VERSION "hadoop2_2.11"
echo "Changing back to scala 2.10"
./tools/change-scala-version.sh 2.10
exit 0
else
exit 1
fi