parent
83d8a48d00
commit
92a05a715c
|
@ -0,0 +1,110 @@
|
||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
node {
|
||||||
|
label 'maven'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
parameters {
|
||||||
|
string(name:'TAG_NAME',defaultValue: '',description:'')
|
||||||
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
// DockerHub 凭证 ID(登录您的 DockerHub)
|
||||||
|
DOCKER_CREDENTIAL_ID = 'dockerhub-id'
|
||||||
|
// GitHub 凭证 ID (推送 tag 到 GitHub 仓库)
|
||||||
|
GITHUB_CREDENTIAL_ID = 'github-id'
|
||||||
|
// kubeconfig 凭证 ID (访问接入正在运行的 Kubernetes 集群)
|
||||||
|
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
|
||||||
|
// 镜像的推送
|
||||||
|
REGISTRY = 'docker.io'
|
||||||
|
// DockerHub 账号名
|
||||||
|
DOCKERHUB_NAMESPACE = 'docker_username'
|
||||||
|
// GitHub 账号名
|
||||||
|
GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro'
|
||||||
|
// 应用名称
|
||||||
|
APP_NAME = 'yudao-admin-server'
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage ('checkout scm') {
|
||||||
|
steps {
|
||||||
|
checkout(scm)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage ('unit test') {
|
||||||
|
steps {
|
||||||
|
container ('maven') {
|
||||||
|
sh 'mvn clean -gs `pwd`/configuration/settings.xml test'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage ('build & push') {
|
||||||
|
steps {
|
||||||
|
container ('maven') {
|
||||||
|
sh 'mvn -Dmaven.test.skip=true -gs `pwd`/configuration/settings.xml clean package'
|
||||||
|
sh 'docker build -f Dockerfile-online -t $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER .'
|
||||||
|
withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$DOCKER_CREDENTIAL_ID" ,)]) {
|
||||||
|
sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin'
|
||||||
|
sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('push latest'){
|
||||||
|
when{
|
||||||
|
branch 'master'
|
||||||
|
}
|
||||||
|
steps{
|
||||||
|
container ('maven') {
|
||||||
|
sh 'docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:latest '
|
||||||
|
sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:latest '
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('deploy to dev') {
|
||||||
|
when{
|
||||||
|
branch 'master'
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
input(id: 'deploy-to-dev', message: 'deploy to dev?')
|
||||||
|
kubernetesDeploy(configs: 'deploy/dev-ol/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('push with tag'){
|
||||||
|
when{
|
||||||
|
expression{
|
||||||
|
return params.TAG_NAME =~ /v.*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
container ('maven') {
|
||||||
|
input(id: 'release-image-with-tag', message: 'release image with tag?')
|
||||||
|
withCredentials([usernamePassword(credentialsId: "$GITHUB_CREDENTIAL_ID", passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) {
|
||||||
|
sh 'git config --global user.email "kubesphere@yunify.com" '
|
||||||
|
sh 'git config --global user.name "kubesphere" '
|
||||||
|
sh 'git tag -a $TAG_NAME -m "$TAG_NAME" '
|
||||||
|
sh 'git push http://$GIT_USERNAME:$GIT_PASSWORD@github.com/$GITHUB_ACCOUNT/devops-java-sample.git --tags --ipv4'
|
||||||
|
}
|
||||||
|
sh 'docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME '
|
||||||
|
sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME '
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('deploy to production') {
|
||||||
|
when{
|
||||||
|
expression{
|
||||||
|
return params.TAG_NAME =~ /v.*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
input(id: 'deploy-to-production', message: 'deploy to production?')
|
||||||
|
kubernetesDeploy(configs: 'deploy/prod-ol/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -41,7 +41,7 @@
|
||||||
<podam.version>7.2.6.RELEASE</podam.version>
|
<podam.version>7.2.6.RELEASE</podam.version>
|
||||||
<jedis-mock.version>0.1.16</jedis-mock.version>
|
<jedis-mock.version>0.1.16</jedis-mock.version>
|
||||||
<!-- 工具类相关 -->
|
<!-- 工具类相关 -->
|
||||||
<lombok.version>1.16.14</lombok.version>
|
<lombok.version>1.18.12</lombok.version>
|
||||||
<mapstruct.version>1.4.1.Final</mapstruct.version>
|
<mapstruct.version>1.4.1.Final</mapstruct.version>
|
||||||
<hutool.version>5.6.1</hutool.version>
|
<hutool.version>5.6.1</hutool.version>
|
||||||
<easyexcel.verion>2.2.7</easyexcel.verion>
|
<easyexcel.verion>2.2.7</easyexcel.verion>
|
||||||
|
|
Loading…
Reference in New Issue