blob: 9059a189988183bbd4ba1e2809ee544b6a51dd88 [file] [log] [blame]
#!/bin/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.
set -x
if [ "$1" != "" ] ; then
repository=$1
echo $repository
fi
if [ "$2" != "" ]; then
action=$2
fi
if [ "$3" != "" ]; then
push_username=$3
fi
if [ "$4" != "" ]; then
push_password=$4
fi
if [ "$action" = "build" -a "$action" = "sync" ] ; then
exit 101
fi
if [ "$push_username" = "" ] ; then
exit 102
fi
if [ "$push_password" = "" ] ; then
exit 103
fi
if [ "$repository" = "" ] ; then
exit 104
fi
ANT_OPTS="-Xmx512m"
export ANT_OPTS
HGMERGE=merge
export HGMERGE
/bin/pwd
rm -rf real.workspace
hg clone . real.workspace || exit 1
cd real.workspace
/bin/pwd
testmodule() {
ant -f $1/build.xml test -Dtest-unit-sys-prop.ignore.random.failures=true
}
if [ "$action" = "build" ]; then
hg pull http://hg.netbeans.org/$repository || exit 1
hg up -C http://hg.netbeans.org/$repository || exit 1
ant build || exit 2
ant commit-validation # || exit 3
# testmodule openide.util || exit 4
# testmodule openide.modules || exit 4
# testmodule openide.filesystems || exit 4
# masterfs is currently broken, Radek wants me to disable it until 6.1M2:
# ant -f masterfs|| exit 4
# testmodule openide.nodes|| exit 4
# testmodule openide.options || exit 4
# testmodule openide.dialogs || exit 4
# testmodule openide.awt || exit 4
# testmodule openide.windows || exit 4
# testmodule core.startup # || exit 4
# testmodule openide.io || exit 4
# if [ `hg out --template '{node|short}\n' http://hg.netbeans.org/$repository | wc -l` > 0 ]; then
# echo No outgoing changes
# exit 0
# fi
# for i in 1 2 3; do
# hg pull http://hg.netbeans.org/$repository || exit 5
# if [ `hg heads --template '{node|short}\n' | wc -l` = 1 ]
# then
# hg up || exit 6
# else
# hg merge || exit 7
# hg ci -m 'Automated merge' || exit 8
# fi
# hg out http://hg.netbeans.org/main
# hg in http://hg.netbeans.org/main
# hg push https://"$push_username":"$push_password"@hg.netbeans.org/main && exit 0
# done
# exit 5
exit 0
fi
if [ "$action" = "sync" ]; then
# update the latest tip of the private repository
hg fetch http://hg.netbeans.org/$repository
# pulling new changes from main-golden
# not needed because the real.workspace is the latest main-golden
# hg fetch http://hg.netbeans.org/main-golden
# Now build and run tests before push
ant build || exit 2
ant commit-validation # || exit 3
# Just make sure that there are no new changes before push
hg out http://hg.netbeans.org/$repository
hg fetch http://hg.netbeans.org/$repository
hg push https://"$push_username":"$push_password"@hg.netbeans.org/$repository
# Now push to the test repo
# echo "Also for now push to testpush-repo:"
# hg fetch ../../testpush-repo
# hg push ../../testpush-repo
exit 0
fi
# Something wrong here
exit 1