xref: /freebsd/release/Makefile.azure (revision df21a004be237a1dccd03c7b47254625eea62fa9)
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