aboutsummaryrefslogblamecommitdiff
path: root/release/Makefile.azure
blob: a8f59282a09cc8d2de1e055cc9e3f098c47f44bf (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
 




                                                     




                                                           
                                   
                                                                                       


        
                                                                                
                                           

      

                                



                                            
                                  




                                                     


                                                        
                                                   
        
                                                                      

                                                                                                  
       

      




                                                           


                                                                            
                                                                            

                                                                    
                                                                                                            














                                                                                           
                                                                                   
             


                                        
#
#
#
# Makefile for uploading Microsoft Azure disk images.
#

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" || ${BRANCH} == "PRERELEASE"
SNAPSHOT_DATE!=		date +-${BUILDDATE}
.endif

START_DATE!=	date -v-1d -I -u
EXPIRY_DATE!=	date -v+1m -I -u

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/az)
. if !exists(${PORTSDIR}/sysutils/py-azure-cli/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 sysutils/py-azure-cli
. else
	env UNAME_r=${UNAME_r} make -C ${PORTSDIR}/sysutils/py-azure-cli BATCH=1 all install clean
. endif
.endif

.for _FS in ${AZURE_FSLIST}
AZURE_IMG_${_FS}=	${.OBJDIR}/azure.${_FS}.vhdf
AZURE_TARGET_${_FS}=	${OSRELEASE}-${_FS}${SNAPSHOT_DATE}

azure-do-upload-${_FS}:
	/usr/local/bin/az storage blob upload \
		--account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \
		--container-name ${AZURE_STORAGE} --type page \
		--file ${AZURE_IMG_${_FS}} --name ${AZURE_TARGET_${_FS}}.vhd
	@echo "The disk access URL with shared access signature is:"
	@echo
	@echo -n https://${AZURE_ACCOUNT}.blob.core.windows.net/${AZURE_STORAGE}/${AZURE_TARGET_${_FS}}.vhd?
	@/usr/local/bin/az storage container generate-sas \
		--account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \
		--name ${AZURE_STORAGE} \
		--permissions lr \
		--start ${START_DATE} \
		--expiry ${EXPIRY_DATE} | cut -d '"' -f 2
	@echo
	@echo "Please go to Microsoft Partner Center to create a new offer and publish it:"
	@echo
	@echo "https://partner.microsoft.com/dashboard/commercial-marketplace/overview"
	@echo
	@echo "After the new offer status is live, you can delete the disk file with:"
	@echo
	@echo /usr/local/bin/az storage blob delete \
		--account-name ${AZURE_ACCOUNT} --account-key ${AZURE_KEY} \
		--container-name ${AZURE_STORAGE} --name ${AZURE_TARGET_${_FS}}.vhd
	@echo
.endfor

azure-do-upload: azure-do-upload-${VMFS}