From owner-svn-src-user@FreeBSD.ORG Tue May 26 20:59:08 2015 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CB2FF1A0; Tue, 26 May 2015 20:59:08 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B83127FB; Tue, 26 May 2015 20:59:08 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t4QKx8vI079177; Tue, 26 May 2015 20:59:08 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t4QKx8mb079176; Tue, 26 May 2015 20:59:08 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201505262059.t4QKx8mb079176@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 26 May 2015 20:59:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r283581 - user/gjb/thermite X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2015 20:59:09 -0000 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 "$@"