Functions.deploy.sh 1.57 KB
Newer Older
据说甜蜜呢 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#!/bin/bash

set -e

# Import external functions
chmod +x ./devops/PipeLines/Functions.core.sh
source ./devops/PipeLines/Functions.core.sh

function CI()
{
    declare serviceName=$1
    declare publishFile=$2
	declare publishOutputDir="/tmp/${serviceName}"

	GetVersion version
	GetImageUserName registryUserName

	# repository name must be lowercase
	ToLower "${RegistryHost}/${registryUserName}/${serviceName}:${version}" imagefullname
	
	echo ""
	echo "Begin delivering for ${serviceName}..."
	echo "Tips: Image full name: ${imagefullname}"
	mkdir -p ${publishOutputDir}
	dotnet publish ${publishFile} -o ${publishOutputDir} -c release --no-restore  
	docker build -t ${imagefullname} ${publishOutputDir}
	docker push ${imagefullname}
	rm -fr ${publishOutputDir}
	echo "Delivery for ${serviceName} has been successful."
据说甜蜜呢 committed
30 31 32 33 34 35 36 37
}

function CD()
{
	declare registryHost=$1
	declare registryUserName=$2
	declare serviceName=$3
	declare version=$4
据说甜蜜呢 committed
38
	declare namespace=$5
据说甜蜜呢 committed
39 40 41 42 43 44 45 46 47 48 49 50 51
	Replace ${serviceName} '.' '-' appName

	# repository name must be lowercase
	ToLower "${registryHost}/${registryUserName}/${serviceName}:${version}" imagefullname
	ToLower ${appName} appNameOfK8s

	kubectl -n ${namespace} set image deployments/${appNameOfK8s} "${appNameOfK8s}=${imagefullname}"; 
	# [compatible]Staging environment does not need to change version number.
	if [ "${Environment}" == "Staging" ]; then
		kubectl -n ${namespace} scale deploy ${appNameOfK8s} --replicas=0; 
		kubectl -n ${namespace} scale deploy ${appNameOfK8s} --replicas=1; 
	fi
	echo "Deployment[${Environment}] for ${appName}:${version} has been successful."
据说甜蜜呢 committed
52
}