Date: Tue, 26 May 2015 20:59:08 +0000 (UTC) From: Glen Barber <gjb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r283581 - user/gjb/thermite Message-ID: <201505262059.t4QKx8mb079176@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gjb Date: Tue May 26 20:59:07 2015 New Revision: 283581 URL: https://svnweb.freebsd.org/changeset/base/283581 Log: Re-sync with the RE repository: - Prevent duplicate send_logmail() call. - Add build_ec2_ami() to automatically create EC2 AMIs after the build_release() loop finishes. - Add ftp_stage() to populate /R/ftp-stage within the chroot, called by build_release(). - Remove call to 'remake-memstick.sh' after r283307. - Ensure BOARDNAME, BUILDDATE, EMBEDDEDBUILD, and SVNREVISION are passed to the make(1) environment in ftp_stage(). Sponsored by: The FreeBSD Foundation Modified: user/gjb/thermite/thermite.sh Modified: user/gjb/thermite/thermite.sh ============================================================================== --- user/gjb/thermite/thermite.sh Tue May 26 20:51:44 2015 (r283580) +++ user/gjb/thermite/thermite.sh Tue May 26 20:59:07 2015 (r283581) @@ -242,6 +242,30 @@ send_logmail() { return 0 } +# Stage builds for ftp propagation. +ftp_stage() { + _build="${rev}-${arch}-${kernel}-${type}" + _conf="${scriptdir}/${_build}.conf" + source_config || return 0 + + load_stage_env + info "Staging for ftp: ${build}" + [ ! -z "${EMBEDDEDBUILD}" ] && export EMBEDDEDBUILD + [ ! -z "${BOARDNAME}" ] && export BOARDNAME + [ -e "${scriptdir}/svnrev_src" ] && \ + export SVNREVISION="$(cat ${scriptdir}/svnrev_src)" + [ -e "${scriptdir}/builddate" ] && \ + export BUILDDATE="$(cat ${scriptdir}/builddate)" + chroot ${CHROOTDIR} make -C /usr/src/release \ + -f Makefile.mirrors \ + TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ + KERNCONF=${KERNEL} \ + ftp-stage >> ${logdir}/${_build}.log 2>&1 + + unset BOARDNAME BUILDDATE EMBEDDEDBUILD SVNREVISION + return 0 +} + # Run the release builds. build_release() { _build="${rev}-${arch}-${kernel}-${type}" @@ -253,24 +277,44 @@ build_release() { /bin/sh ${srcdir}/release.sh -c ${_conf} \ >> ${logdir}/${_build}.log 2>&1 + ftp_stage + ls -1 ${CHROOTDIR}/R/* >> ${logdir}/${_build}.log send_logmail ${logdir}/${_build}.log ${_build} + unset _build _conf +} - # Recreate the memstick.img for i386 while here. +# Upload AWS EC2 AMI images. +build_ec2_ami() { + _build="${rev}-${arch}-${kernel}-${type}" + _conf="${scriptdir}/${_build}.conf" + source_config || return 0 case ${arch} in - i386) - /bin/sh ${scriptdir}/remake-memstick.sh \ - -c ${_conf} >> ${logdir}/${_build}.log + amd64) ;; *) - ls -1 ${CHROOTDIR}/R/* >> ${logdir}/${_build}.log - send_logmail ${logdir}/${_build}.log ${_build} return 0 ;; esac - ls -1 ${CHROOTDIR}/R/* >> ${logdir}/${_build}.log - send_logmail ${logdir}/${_build}.log ${_build} - unset _build _conf -} + info "Building EC2 AMI for build: ${_build}" + if [ ! -e "${CHROOTDIR}/${AWSKEYFILE}" ]; then + cp -p ${AWSKEYFILE} ${CHROOTDIR}/${AWSKEYFILE} + if [ $? -ne 0 ]; then + info "Amazon EC2 key file not found." + return 0 + fi + fi + if [ -z "${AWSREGION}" -o -z "${AWSBUCKET}" -o "${AWSKEYFILE}" ]; then + return 0 + fi + chroot ${CHROOTDIR} make -C /usr/src \ + AWSREGION=${AWSREGION} \ + AWSBUCKET=${AWSBUCKET} \ + AWSKEYFILE=${AWSKEYFILE} \ + EC2PUBLIC=${EC2PUBLIC} ec2ami \ + >> ${logdir}/${_build}.log + unset _build _conf AWSREGION AWSBUCKET AWSKEYFILE EC2PUBLIC + return 0 +} # build_ec2_ami() # Install amd64/i386 "seed" chroots for all branches being built. install_chroots() { @@ -386,6 +430,7 @@ main() { runall build_chroots runall install_chroots runall build_release + runall build_ec2_ami } main "$@"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505262059.t4QKx8mb079176>