#!/usr/bin/env groovy
def registry = "10.1.1.11"
def project = "datacenter"
def app_name = "zhiyuecms"
def image_name = "${registry}/${project}/${app_name}:${Branch}-${BUILD_NUMBER}"
def git_address = "http://10.1.1.11:9999/golang/zhiyuecms.git"
def docker_registry_auth = "e94b8182-3024-42be-945b-1c6e3616e337"
def git_auth = "be4bef32-d981-489b-bf5c-fc85fe5eff71"
pipeline {
agent any
stages {
stage('拉取代码'){
steps {
checkout([$class: 'GitSCM', branches: [[name: '${Branch}']], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
}
}
stage('构建镜像'){
steps {
withCredentials([usernamePassword(credentialsId: "${docker_registry_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
sh """
echo '
FROM golang:1.12 as build
ENV GOPROXY https://goproxy.io
ENV GO111MODULE on
WORKDIR /go/cache
ADD go.mod .
RUN go mod tidy
RUN go mod download
WORKDIR /go/release
ADD . .
RUN GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -installsuffix cgo -o grpcswagger main.go
FROM scratch as prod
COPY --from=build /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
COPY --from=build /go/release/grpcswagger /
CMD ["/grpcswagger"]
' > Dockerfile
docker build -t 10.1.1.11/datacenter/zhiyuecms:latest .
docker login -u ${username} -p '${password}' ${registry}
docker push 10.1.1.11/datacenter/zhiyuecms:latest
"""
}
}
}
stage('部署到Docker'){
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'test-10.1.1.26', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'sh /root/zhiyuecms.sh', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}