build: logs upload for nightly

Logs still have issues due to their incredible length, but
for now this makes daily checks easier than ever in any case.
This commit is contained in:
Franco Fichtner 2018-09-13 21:24:44 +02:00
parent 63af79cb3a
commit 7315cf2f78
5 changed files with 26 additions and 3 deletions

View File

@ -83,6 +83,7 @@ MIRRORS?= https://opnsense.c0urier.net \
http://mirror.fra10.de.leaseweb.net/opnsense \
http://mirror.ams1.nl.leaseweb.net/opnsense
SERVER?= user@does.not.exist
UPLOADDIR?=
_VERSION!= date '+%Y%m%d%H%M'
VERSION?= ${_VERSION}
STAGEDIRPREFIX?=/usr/obj
@ -146,7 +147,8 @@ ${STEP}: lint-steps
-g ${TOOLSBRANCH} -E ${COREBRANCH} -G ${PORTSREFBRANCH} \
-H "${COREENV}" -Q "${QUICK}" -u "${UEFI:tl}" -U "${SUFFIX}" \
-V "${ADDITIONS}" -O "${GITBASE}" -r "${SERVER}" \
-q "${VERSIONS}" -h "${PLUGINENV}" ${${STEP}_ARGS}
-q "${VERSIONS}" -h "${PLUGINENV}" -I "${UPLOADDIR}" \
${${STEP}_ARGS}
.endfor
.for SCRIPT in ${SCRIPTS}

View File

@ -413,6 +413,9 @@ Logs can be downloaded as well for local inspection. Note that download
like prefetch will purge all locally existing targets. Use SERVER to
specify the remote end, e.g. SERVER=user@does.not.exist
Additionally, UPLOADDIR can be used to specify a remote location. At
this point only "logs" upload cleares and creates directories on the fly.
Last but not least, a refresh of OPNsense core and plugins on package
sets is invoked using:

View File

@ -28,7 +28,7 @@
set -e
OPTS="a:B:b:C:c:d:E:e:F:f:G:g:H:h:K:k:L:l:m:n:O:o:P:p:Q:q:R:r:S:s:T:t:U:u:v:V:"
OPTS="a:B:b:C:c:d:E:e:F:f:G:g:H:h:I:K:k:L:l:m:n:O:o:P:p:Q:q:R:r:S:s:T:t:U:u:v:V:"
while getopts ${OPTS} OPT; do
case ${OPT} in
@ -86,6 +86,9 @@ while getopts ${OPTS} OPT; do
export PRODUCT_PRIVKEY=${OPTARG}
fi
;;
I)
export UPLOADDIR=${OPTARG}
;;
L)
if [ -n "${OPTARG}" ]; then
export PRODUCT_SIGNCMD=${OPTARG}

View File

@ -34,7 +34,7 @@ SELF=upload
upload()
{
echo ">>> Uploading ${1} to ${PRODUCT_SERVER}..."
(cd ${2}; scp ${3} ${PRODUCT_SERVER}:)
(cd ${2}; scp ${3} ${PRODUCT_SERVER}:${UPLOADDIR})
}
for ARG in ${@}; do
@ -45,6 +45,19 @@ for ARG in ${@}; do
base|kernel)
upload ${ARG} ${SETSDIR} "${ARG}-*"
;;
logs)
if [ -z "${UPLOADDIR}" -o "${UPLOADDIR}" = "/" ]; then
echo ">>> Abort due to dangerous UPLOADDIR=\"${UPLOADDIR}\""
exit 1
fi
_UPLOADDIR="${UPLOADDIR}/${PRODUCT_SETTINGS}/${PRODUCT_ARCH}/logs"
ssh ${PRODUCT_SERVER} mkdir -p "${_UPLOADDIR}"
ssh ${PRODUCT_SERVER} rm -rf "${_UPLOADDIR}/*"
for LOG in $(find ${LOGSDIR} -name "*.tgz"); do
cat ${LOG} | ssh ${PRODUCT_SERVER} \
tar -C "${_UPLOADDIR}" -xzf -
done
;;
packages|release)
upload ${ARG} ${SETSDIR} "${ARG}-*-${PRODUCT_FLAVOUR}-*"
;;

View File

@ -30,3 +30,5 @@ done
tar -C ${LOGSDIR} -czf ${LOGSDIR}/${PRODUCT_VERSION}.tgz ${PRODUCT_VERSION}
rm -rf ${LOGSDIR}/latest
mv ${LOGSDIR}/${PRODUCT_VERSION} ${LOGSDIR}/latest
make upload-logs SERVER=${SERVER} UPLOADDIR=${UPLOADDIR}