1# 2# Makefile for uploading Microsoft Azure disk images. 3# 4 5AZURE_UPLOAD_TGTS= azure-check-depends \ 6 azure-do-upload 7CLEANFILES+= ${AZURE_UPLOAD_TGTS} 8 9.if defined(AZURE_UPLOAD_CONF) && !empty(AZURE_UPLOAD_CONF) 10. for VAR in _STORAGE _ACCOUNT _KEY 11AZURE${VAR}!= grep -E '^AZURE${VAR}' ${AZURE_UPLOAD_CONF} | awk -F ' ' '{print $$2}' 12. endfor 13.endif 14 15.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE" 16SNAPSHOT_DATE!= date +-${BUILDDATE} 17.endif 18 19azure-upload: ${AZURE_UPLOAD_TGTS} 20 21azure-check-depends: 22.for VAR in _STORAGE _ACCOUNT _KEY 23. if !defined(AZURE${VAR}) || empty(AZURE${VAR}) 24 @echo "Variable AZURE${VAR} cannot be empty." 25 @false 26. endif 27.endfor 28.if !exists(/usr/local/bin/az) 29. if !exists(${PORTSDIR}/sysutils/py-azure-cli/Makefile) 30. if !exists(/usr/local/sbin/pkg-static) 31 env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf 32. endif 33 env ASSUME_ALWAYS_YES=yes pkg install -y sysutils/py-azure-cli 34. else 35 env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/sysutils/py-azure-cli \ 36 BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \ 37 all install clean 38. endif 39.endif 40 41.for _FS in ${AZURE_FSLIST} 42AZURE_IMG_${_FS}= ${.OBJDIR}/azure.${_FS}.vhd 43AZURE_TARGET_${_FS}= ${OSRELEASE}-${_FS}${SNAPSHOT_DATE} 44 45azure-do-upload-${_FS}: 46 /usr/local/bin/az storage blob upload \ 47 --account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \ 48 --container-name ${AZURE_STORAGE} --type page \ 49 --file ${AZURE_IMG_${_FS}} --name ${AZURE_TARGET_${_FS}}.vhd 50 @echo "The disk has been uploaded to Storage Account, use following information" 51 @echo "to create an image in Compute Gallery:" 52 @echo 53 @echo "Storage Account name: ${AZURE_ACCOUNT}" 54 @echo "Container name: ${AZURE_STORAGE}" 55 @echo "Blob name: ${AZURE_TARGET_${_FS}}.vhd" 56 @echo 57 @echo "Please go to Microsoft Partner Center to create a new offer and publish it:" 58 @echo 59 @echo "https://partner.microsoft.com/dashboard/marketplace-offers/overview" 60 @echo 61 @echo "After the new offer status is live, you can delete the disk file with:" 62 @echo 63 @echo /usr/local/bin/az storage blob delete \ 64 --account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \ 65 --container-name ${AZURE_STORAGE} --name ${AZURE_TARGET_${_FS}}.vhd 66 @echo 67.endfor 68 69azure-do-upload: azure-do-upload-${VMFS} 70