Skip to main content
summaryrefslogtreecommitdiffstats
blob: ae3bdbb2128f3c5bab9bdb56fd543c638a7370cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env bash
#*******************************************************************************
# Copyright (c) 2016 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     David Williams - initial API and implementation
#*******************************************************************************

# Utility to promote the build and trigger the unit tests on Hudson.

function usage ()
{
  printf "\n\n\t%s\n" "promote-build.sh env_file"
}

source "$1" 2>/dev/null
# To allow this cron job to work from hudson, or traditional crontab
if [[ -z "${WORKSPACE}" ]]
then
  export UTILITIES_HOME=/shared/eclipse
else
  export UTILITIES_HOME=${WORKSPACE}/utilities/production
fi

#TODO: Should we make use of "UTILITIES_HOME" here?
if [[ -z ${SCRIPT_PATH} ]]
then
  SCRIPT_PATH=${PWD}
fi
echo -e "\n\t[DEBUG] SCRIPT_PATH in promote-build.sh: $SCRIPT_PATH"
source $SCRIPT_PATH/build-functions.shsource

if [[ -z ${STREAM} || -z ${BUILD_ID} ]]
then
  echo "ERROR: This script requires STREAM and BUILD_ID"
  exit 1
fi

if [[ "${testbuildonly}" == "true" ]]
then
  echo "Did not promote build since testbuildonly is true."
  exit 0
fi

# if EBUILDER_HASH is not defined, assume master, so order of following parameters are maintained.
if [[ -z "${EBUILDER_HASH}" ]]
then
  EBUILDER_HASH=master
fi

# Here is command for promotion:

${UTILITIES_HOME}/sdk/promotion/syncDropLocation.sh $STREAM $BUILD_ID $EBUILDER_HASH $BUILD_ENV_FILE

# we do not promote equinox, if BUILD_FAILED since no need.
# we also do not promote if Patch build or Y-build or experimental (since, to date, those are not "for" equinox). 
if [[ -z "${BUILD_FAILED}" &&  $BUILD_TYPE =~ [IMN] ]]
then

  equinoxPostingDirectory="$BUILD_ROOT/siteDir/equinox/drops"
  eqFromDir=${equinoxPostingDirectory}/${BUILD_ID}
  eqToDir="/home/data/httpd/download.eclipse.org/equinox/drops/"

  # Note: for proper mirroring at Eclipse, we probably do not want or need to
  # maintain "times" on build machine, but let them take times at time of copying.
  # If it turns out to be important to maintain times (such as ran more than once,
  # to pick up a "more" output, such as test results, then add -t to rsync
  # Similarly, if download server is set up right, it will end up with the
  # correct permissions, but if not, we may need to set some permissions first,
  # then use -p on rsync

  # Here is promotion command
  rsync --times --omit-dir-times --recursive "${eqFromDir}" "${eqToDir}"

else
  echo "Did not promote equinox since BUILD_FAILED"
fi

echo "normal exit from promote phase of $(basename $0)"

exit 0

Back to the top