def call(TIDB_CLOUD_MANAGER_BRANCH, RELEASE_TAG) {

	env.GOPATH = "/go"
	env.GOROOT = "/usr/local/go"
	env.PATH = "${env.GOROOT}/bin:${env.GOPATH}/bin:/bin:${env.PATH}:/home/jenkins/bin"

	def GITHASH
	def UCLOUD_OSS_URL = "http://pingcap-dev.hk.ufileos.com"

	catchError {
		node('k8s_centos7_build') {
			def WORKSPACE = pwd()
			def HOSTIP = env.NODE_NAME.getAt(8..(env.NODE_NAME.lastIndexOf('-') - 1))

			dir("${WORKSPACE}/cloud-manager"){
				stage('Download tidb-cloud-manager binary'){
					GITHASH = sh(returnStdout: true, script: "curl ${UCLOUD_OSS_URL}/refs/pingcap/cloud-manager/${TIDB_CLOUD_MANAGER_BRANCH}/centos7/sha1").trim()
					sh "curl ${UCLOUD_OSS_URL}/builds/pingcap/cloud-manager/${GITHASH}/centos7/tidb-cloud-manager.tar.gz | tar xz"
				}

				stage('Push tidb-cloud-manager Docker Image'){
					withDockerServer([uri: "tcp://${HOSTIP}:32376"]) {
						docker.build("uhub.ucloud.cn/pingcap/tidb-cloud-manager:${RELEASE_TAG}", "docker").push()
						docker.build("pingcap/tidb-cloud-manager:${RELEASE_TAG}", "docker").push()
					}
				}

				stage('Release charts to qiniu'){
					sh """
					mkdir -p release_charts
					cd release_charts && cp -r ../charts . && tar -zcf tidb-cloud-manager-charts-${RELEASE_TAG}.tar.gz charts
					sha256sum tidb-cloud-manager-charts-${RELEASE_TAG}.tar.gz > tidb-cloud-manager-charts-${RELEASE_TAG}.sha256

					upload.py tidb-cloud-manager-charts-${RELEASE_TAG}.tar.gz tidb-cloud-manager-charts-${RELEASE_TAG}.tar.gz
					upload.py tidb-cloud-manager-charts-${RELEASE_TAG}.sha256 tidb-cloud-manager-charts-${RELEASE_TAG}.sha256
					"""
				}
			}
		}
		currentBuild.result = "SUCCESS"
	}
	stage('Summary') {
		echo("echo summary info ########")
		def DURATION = (((System.currentTimeMillis() - currentBuild.startTimeInMillis) / 1000 / 60) as double).round(2)
		def slackmsg = "[${env.JOB_NAME.replaceAll('%2F','/')}-${env.BUILD_NUMBER}] `${currentBuild.result}`" + "\n" +
		"Elapsed Time: `${DURATION}` Mins" + "\n" +
		"tidb-cloud-manager Branch: `${TIDB_CLOUD_MANAGER_BRANCH}`, Githash: `${GITHASH.take(7)}`" + "\n" +
		"Display URL:" + "\n" +
		"${env.RUN_DISPLAY_URL}"

		if(currentBuild.result != "SUCCESS"){
			slackSend channel: '#cloud_jenkins', color: 'danger', teamDomain: 'pingcap', tokenCredentialId: 'slack-pingcap-token', message: "${slackmsg}"
		} else {
			slackmsg = "${slackmsg}" + "\n" +
			"tidb-cloud-manager Docker Image: `pingcap/tidb-cloud-manager:${RELEASE_TAG}`" + "\n" +
			"tidb-cloud-manager Docker Image: `uhub.ucloud.cn/pingcap/tidb-cloud-manager:${RELEASE_TAG}`" + "\n" +
			"tidb-cloud-manager charts Download URL: http://download.pingcap.org/tidb-cloud-manager-charts-${RELEASE_TAG}.tar.gz" + "\n" +
			"tidb-cloud-manager charts sha256: http://download.pingcap.org/tidb-cloud-manager-charts-${RELEASE_TAG}.sha256"
			slackSend channel: '#cloud_jenkins', color: 'good', teamDomain: 'pingcap', tokenCredentialId: 'slack-pingcap-token', message: "${slackmsg}"
		}
	}
}

return this
