# linux判断文件不存在退出jenkins编译流程
file="${WORKSPACE}/mc/jenkins_arm64.sh"
if [ ! -f "$file" ]; then
echo "jenkins_arm64.sh not exist"
exit 0
fi
dir('charge'){
checkout([$class: 'GitSCM', branches: [[name: 'refs/heads/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "jenkins", url: "http://192.168.12.38/xx/xxx.git"]]])
}
echo '[charge] master Dev Branch Checkout Done'
echo '[charge] build'
sh '''
#!/bin/bash
if [ "$gitbranch" = "default" ]; then
branch=V0.0.0
fi
if [ "$gitbranch" = "origin/master" ]; then
branch=V0.0.0
fi
mkdir -p ${WORKSPACE}/mc
#git describe --abbrev=0 --tags >${WORKSPACE}/mc/tag.txt
#tag=`cat ${WORKSPACE}/mc/tag.txt`
time=`date +%Y%m%d%H%M%S`
#time="${time: =0}"
version="${branch}.${time}"
echo ${version}>${WORKSPACE}/mc/version.ini
echo ${branch}>${WORKSPACE}/mc/branch.ini
version=`cat ${WORKSPACE}/mc/version.ini`
src="${WORKSPACE}/charge"
cd "${src}"
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
source /etc/profile
go version
go mod tidy
CGO_ENABLED=0
GOOS=linux
GOARCH=amd64
dest=${WORKSPACE}/charge/GoCharges
rm ${dest} -rf 1>nul
source ./Gen.sh
cd $dest
branch=`cat ${WORKSPACE}/mc/branch.ini`
REPOSITORY=192.168.12.133/xx/charge:$branch
docker rmi -f ${REPOSITORY} | true
docker build -t ${REPOSITORY} .
docker login -u dev -p Dev@xxsoft 192.168.12.133
docker push $REPOSITORY
国产操作系统Arm的GO编译脚本
CGO_ENABLED=0
GOOS=linux
GOARCH=arm64
GOARM=7