diff options
author | Renato Botelho <renato@netgate.com> | 2016-04-21 16:34:40 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-04-21 16:42:55 -0300 |
commit | 006cc4ca3ffa2e11f8a1a53b7b852ed0ccbdeb3d (patch) | |
tree | 162aeb6f9ae076635bd71ba8c550448d9e051294 /tools | |
parent | 463f3d3dfdfc8363c48bfc0391c67e94b319eae0 (diff) | |
download | pfsense-006cc4ca3ffa2e11f8a1a53b7b852ed0ccbdeb3d.zip pfsense-006cc4ca3ffa2e11f8a1a53b7b852ed0ccbdeb3d.tar.gz |
Send pkg repos to staging server before move to final one
Diffstat (limited to 'tools')
-rw-r--r-- | tools/builder_common.sh | 31 | ||||
-rw-r--r-- | tools/builder_defaults.sh | 16 |
2 files changed, 40 insertions, 7 deletions
diff --git a/tools/builder_common.sh b/tools/builder_common.sh index eac8135..27380e9 100644 --- a/tools/builder_common.sh +++ b/tools/builder_common.sh @@ -1833,14 +1833,14 @@ finish() { } pkg_repo_rsync() { - local _repo_path="${1}" + local _repo_path_param="${1}" - if [ -z "${_repo_path}" -o ! -d "${_repo_path}" ]; then + if [ -z "${_repo_path_param}" -o ! -d "${_repo_path_param}" ]; then return fi # Sanitize path - _repo_path=$(realpath ${_repo_path}) + _repo_path=$(realpath ${_repo_path_param}) local _repo_dir=$(dirname ${_repo_path}) local _repo_base=$(basename ${_repo_path}) @@ -1899,6 +1899,11 @@ pkg_repo_rsync() { return fi + # Make sure destination directory exist + ssh -p ${PKG_RSYNC_SSH_PORT} \ + ${PKG_RSYNC_USERNAME}@${PKG_RSYNC_HOSTNAME} \ + "mkdir -p ${PKG_RSYNC_DESTDIR}" + echo -n ">>> Sending updated repository to ${PKG_RSYNC_HOSTNAME}... " | tee -a ${_logfile} if script -aq ${_logfile} rsync -ave "ssh -p ${PKG_RSYNC_SSH_PORT}" \ --timeout=60 --delete-delay ${_repo_path} \ @@ -1910,6 +1915,26 @@ pkg_repo_rsync() { echo ">>> ERROR: An error occurred sending repo to remote hostname" print_error_pfS fi + + if [ -z "${USE_PKG_REPO_STAGING}" ]; then + return + fi + + if [ -n "${_IS_RELEASE}" -o "${_repo_path_param}" = "${CORE_PKG_PATH}" ]; then + local _cmd="rsync -ave \"ssh -p ${PKG_FINAL_RSYNC_SSH_PORT}\" \ + --timeout=60 --delete-delay ${PKG_RSYNC_DESTDIR}/./${_repo_base%%-core}* \ + ${PKG_FINAL_RSYNC_USERNAME}@${PKG_FINAL_RSYNC_HOSTNAME}:${PKG_FINAL_RSYNC_DESTDIR}" + + echo -n ">>> Sending updated repositories to ${PKG_FINAL_RSYNC_HOSTNAME}... " | tee -a ${_logfile} + if script -aq ${_logfile} ssh -p ${PKG_RSYNC_SSH_PORT} \ + ${PKG_RSYNC_USERNAME}@${PKG_RSYNC_HOSTNAME} ${_cmd} >/dev/null 2>&1; then + echo "Done!" | tee -a ${_logfile} + else + echo "Failed!" | tee -a ${_logfile} + echo ">>> ERROR: An error occurred sending repo to final hostname" + print_error_pfS + fi + fi } poudriere_create_patch() { diff --git a/tools/builder_defaults.sh b/tools/builder_defaults.sh index 34502dc..d42b5de 100644 --- a/tools/builder_defaults.sh +++ b/tools/builder_defaults.sh @@ -261,6 +261,8 @@ if [ -z "${BUILTDATESTRING}" ]; then fi echo "$BUILTDATESTRING" > $BUILTDATESTRINGFILE +STAGING_HOSTNAME=${STAGING_HOSTNAME:-"release-staging.netgate.com"} + # Poudriere export ZFS_TANK=${ZFS_TANK:-"zroot"} export ZFS_ROOT=${ZFS_ROOT:-"/poudriere"} @@ -271,10 +273,17 @@ export POUDRIERE_PORTS_GIT_URL=${POUDRIERE_PORTS_GIT_URL:-"${GIT_REPO_BASE}/free export POUDRIERE_PORTS_GIT_BRANCH=${POUDRIERE_PORTS_GIT_BRANCH:-"RELENG_2_3"} # Host to rsync pkg repos from poudriere +export PKG_RSYNC_HOSTNAME=${PKG_RSYNC_HOSTNAME:-${STAGING_HOSTNAME}} export PKG_RSYNC_USERNAME=${PKG_RSYNC_USERNAME:-"wwwsync"} export PKG_RSYNC_SSH_PORT=${PKG_RSYNC_SSH_PORT:-"22"} -export PKG_RSYNC_DESTDIR=${PKG_RSYNC_DESTDIR:-"/usr/local/www/beta/packages"} -export PKG_RSYNC_LOGS=${PKG_RSYNC_LOGS:-"/usr/local/www/beta"} +export PKG_RSYNC_DESTDIR=${PKG_RSYNC_DESTDIR:-"/staging/ce/packages"} +export PKG_RSYNC_LOGS=${PKG_RSYNC_LOGS:-"/staging/ce/packages/logs/${POUDRIERE_BRANCH}/${TARGET}"} + +# Final packages server +export PKG_FINAL_RSYNC_HOSTNAME=${PKG_FINAL_RSYNC_HOSTNAME:-"beta.pfsense.org"} +export PKG_FINAL_RSYNC_USERNAME=${PKG_FINAL_RSYNC_USERNAME:-"wwwsync"} +export PKG_FINAL_RSYNC_SSH_PORT=${PKG_FINAL_RSYNC_SSH_PORT:-"22"} +export PKG_FINAL_RSYNC_DESTDIR=${PKG_FINAL_RSYNC_DESTDIR:-"/usr/local/www/beta/packages"} unset _IS_RELEASE unset CORE_PKG_DATESTRING @@ -304,17 +313,16 @@ esac export USE_PKG_REPO_STAGING="1" export PKG_REPO_SERVER_DEVEL=${PKG_REPO_SERVER_DEVEL:-"pkg+https://beta.pfsense.org/packages"} export PKG_REPO_SERVER_RELEASE=${PKG_REPO_SERVER_RELEASE:-"pkg+https://pkg.pfsense.org"} +export PKG_REPO_SERVER_STAGING=${PKG_REPO_SERVER_STAGING:-"pkg+http://${STAGING_HOSTNAME}/ce/packages"} if [ -n "${_IS_RELEASE}" ]; then export PKG_REPO_BRANCH_RELEASE=${PKG_REPO_BRANCH_RELEASE:-${POUDRIERE_BRANCH}} export PKG_REPO_BRANCH_DEVEL=${PKG_REPO_BRANCH_DEVEL:-"v2_3"} export PKG_REPO_BRANCH_STAGING=${PKG_REPO_BRANCH_STAGING:-${PKG_REPO_BRANCH_RELEASE}} - export PKG_REPO_SERVER_STAGING=${PKG_REPO_SERVER_STAGING:-"pkg+http://release-staging.netgate.com/ce/packages"} else export PKG_REPO_BRANCH_RELEASE=${PKG_REPO_BRANCH_RELEASE:-"v2_3_0"} export PKG_REPO_BRANCH_DEVEL=${PKG_REPO_BRANCH_DEVEL:-${POUDRIERE_BRANCH}} export PKG_REPO_BRANCH_STAGING=${PKG_REPO_BRANCH_STAGING:-${PKG_REPO_BRANCH_DEVEL}} - export PKG_REPO_SERVER_STAGING=${PKG_REPO_SERVER_STAGING:-"pkg+http://beta.pfsense.org/packages"} fi # Command used to sign pkg repo |