summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-04-21 16:34:40 -0300
committerRenato Botelho <renato@netgate.com>2016-04-21 16:34:52 -0300
commit15333972e7916918be46c3d7c4e8ded240ac773a (patch)
tree383beecf9a2b3c8e944ba4e778c980e07f09e9af /tools
parent61b63ac04aeae6ddaefae3f0f793f5c6500dc148 (diff)
downloadpfsense-15333972e7916918be46c3d7c4e8ded240ac773a.zip
pfsense-15333972e7916918be46c3d7c4e8ded240ac773a.tar.gz
Send pkg repos to staging server before move to final one
Diffstat (limited to 'tools')
-rw-r--r--tools/builder_common.sh31
-rw-r--r--tools/builder_defaults.sh16
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 54eb2bb..b5d8d4f 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:-"devel"}
# 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://beta.pfsense.org/packages"}
+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:-${POUDRIERE_BRANCH}}
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:-${POUDRIERE_BRANCH}}
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
OpenPOWER on IntegriCloud