4 # Makefile for uploading Microsoft Azure disk images.
7 AZURE_UPLOAD_TGTS= azure-check-depends \
9 CLEANFILES+= ${AZURE_UPLOAD_TGTS}
11 .if defined(AZURE_UPLOAD_CONF) && !empty(AZURE_UPLOAD_CONF)
12 . for VAR in _STORAGE _ACCOUNT _KEY
13 AZURE${VAR}!= grep -E '^AZURE${VAR}' ${AZURE_UPLOAD_CONF} | awk -F ' ' '{print $$2}'
17 .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
18 SNAPSHOT_DATE!= date +-${BUILDDATE}
21 START_DATE!= date -v-1d -I -u
22 EXPIRY_DATE!= date -v+1m -I -u
24 azure-upload: ${AZURE_UPLOAD_TGTS}
27 .for VAR in _STORAGE _ACCOUNT _KEY
28 . if !defined(AZURE${VAR}) || empty(AZURE${VAR})
29 @echo "Variable AZURE${VAR} cannot be empty."
33 .if !exists(/usr/local/bin/az)
34 . if !exists(${PORTSDIR}/sysutils/py-azure-cli/Makefile)
35 . if !exists(/usr/local/sbin/pkg-static)
36 env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf
38 env ASSUME_ALWAYS_YES=yes pkg install -y sysutils/py-azure-cli
40 env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/sysutils/py-azure-cli BATCH=1 all install clean
44 .for _FS in ${AZURE_FSLIST}
45 AZURE_IMG_${_FS}= ${.OBJDIR}/azure.${_FS}.vhdf
46 AZURE_TARGET_${_FS}= ${OSRELEASE}-${_FS}${SNAPSHOT_DATE}
48 azure-do-upload-${_FS}:
49 /usr/local/bin/az storage blob upload \
50 --account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \
51 --container-name ${AZURE_STORAGE} --type page \
52 --file ${AZURE_IMG_${_FS}} --name ${AZURE_TARGET_${_FS}}.vhd
53 @echo "The disk access URL with shared access signature is:"
55 @echo -n https://${AZURE_ACCOUNT}.blob.core.windows.net/${AZURE_STORAGE}/${AZURE_TARGET_${_FS}}.vhd?
56 @/usr/local/bin/az storage container generate-sas \
57 --account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \
58 --name ${AZURE_STORAGE} \
60 --start ${START_DATE} \
61 --expiry ${EXPIRY_DATE} | cut -d '"' -f 2
63 @echo "Please go to Microsoft Partner Center to create a new offer and publish it:"
65 @echo "https://partner.microsoft.com/dashboard/commercial-marketplace/overview"
67 @echo "After the new offer status is live, you can delete the disk file with:"
69 @echo /usr/local/bin/az storage blob delete \
70 --account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \
71 --container-name ${AZURE_STORAGE} --name ${AZURE_TARGET_${_FS}}.vhd
75 azure-do-upload: azure-do-upload-${VMFS}