From 873fc7038251d0f8c097dbe1cec931d5a0df2166 Mon Sep 17 00:00:00 2001 From: Glen Barber Date: Thu, 18 Jun 2015 19:20:00 +0000 Subject: [PATCH] Add Makefile.azure, used to upload VHD images to the Microsoft Azure environment, similar to the EC2 AMIs. MFC after: 3 days Tested with: stable/10@r284517 (patched) Sponsored by: The FreeBSD Foundation --- release/Makefile.azure | 53 ++++++++++++++++++++++++++++++++++++++++++ release/Makefile.vm | 1 + 2 files changed, 54 insertions(+) create mode 100644 release/Makefile.azure diff --git a/release/Makefile.azure b/release/Makefile.azure new file mode 100644 index 000000000000..01e2204d08f4 --- /dev/null +++ b/release/Makefile.azure @@ -0,0 +1,53 @@ +# +# $FreeBSD$ +# +# +# Makefile for uploading Microsoft Azure disk images. +# + +AZURE_IMG?= ${.OBJDIR}/azure.vhdf +AZURE_UPLOAD_TGTS= azure-check-depends \ + azure-do-upload +CLEANFILES+= ${AZURE_UPLOAD_TGTS} + +.if defined(AZURE_UPLOAD_CONF) && !empty(AZURE_UPLOAD_CONF) +. for VAR in _STORAGE _ACCOUNT _KEY +AZURE${VAR}!= grep -E ^AZURE${VAR} ${AZURE_UPLOAD_CONF} | awk -F' ' '{print $$2}' +. endfor +.endif + +.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" +SNAPSHOT_DATE!= date +-%Y-%m-%d +.endif + +AZURE_TARGET:= ${OSRELEASE}${SNAPSHOT_DATE}.vhd + +azure-upload: ${AZURE_UPLOAD_TGTS} + +azure-check-depends: +.for VAR in _STORAGE _ACCOUNT _KEY +. if !defined(AZURE${VAR}) || empty(AZURE${VAR}) + @echo "Variable AZURE${VAR} cannot be empty." + @false +. endif +.endfor +.if !exists(/usr/local/bin/azure) +. if !exists(/usr/local/bin/npm) +. if !exists(${PORTSDIR}/www/npm/Makefile) +. if !exists(/usr/local/sbin/pkg-static) + env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf +. endif + env ASSUME_ALWAYS_YES=yes pkg install -y www/npm +. else + make -C ${PORTSDIR}/www/npm BATCH=1 all install clean +. endif +. endif + npm install -g azure-cli +.endif + +azure-do-upload: + /usr/local/bin/azure storage blob upload \ + ${AZURE_IMG} ${AZURE_STORAGE} ${AZURE_TARGET} \ + -t page -a ${AZURE_ACCOUNT} -k "${AZURE_KEY}" + touch ${.OBJDIR}/${.TARGET} + diff --git a/release/Makefile.vm b/release/Makefile.vm index 65997026504c..ae7c3aa0295c 100644 --- a/release/Makefile.vm +++ b/release/Makefile.vm @@ -154,3 +154,4 @@ cloudware-install: .endif .include "${.CURDIR}/Makefile.ec2" +.include "${.CURDIR}/Makefile.azure"