mirror of
https://gitee.com/y_project/RuoYi-Cloud.git
synced 2026-01-29 21:11:57 +08:00
Compare commits
3 Commits
4aef4d8363
...
908dcf8043
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
908dcf8043 | ||
|
|
088cec8adf | ||
|
|
6150fecef9 |
103
Jenkinsfile-online
Normal file
103
Jenkinsfile-online
Normal file
@@ -0,0 +1,103 @@
|
||||
pipeline {
|
||||
agent {
|
||||
node {
|
||||
label 'maven'
|
||||
}
|
||||
}
|
||||
|
||||
parameters {
|
||||
string(name:'TAG_NAME',defaultValue: '',description:'')
|
||||
}
|
||||
|
||||
environment {
|
||||
DOCKER_CREDENTIAL_ID = 'dockerhub-id'
|
||||
GITHUB_CREDENTIAL_ID = 'github-id'
|
||||
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
|
||||
REGISTRY = 'docker.io'
|
||||
DOCKERHUB_NAMESPACE = 'docker_username'
|
||||
GITHUB_ACCOUNT = 'kubesphere'
|
||||
APP_NAME = 'devops-java-sample'
|
||||
}
|
||||
|
||||
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")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -130,7 +130,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24" v-if="form.menuType != 'F'">
|
||||
<el-col :span="12" v-if="form.menuType != 'F'">
|
||||
<el-form-item label="菜单图标" prop="icon">
|
||||
<el-popover
|
||||
placement="bottom-start"
|
||||
@@ -151,6 +151,11 @@
|
||||
</el-popover>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="显示排序" prop="orderNum">
|
||||
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
@@ -158,9 +163,15 @@
|
||||
<el-input v-model="form.menuName" placeholder="请输入菜单名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="显示排序" prop="orderNum">
|
||||
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
|
||||
<el-col :span="12" v-if="form.menuType == 'C'">
|
||||
<el-form-item prop="routeName">
|
||||
<el-input v-model="form.routeName" placeholder="请输入路由名称" />
|
||||
<span slot="label">
|
||||
<el-tooltip content="默认不填则和路由地址相同:如地址为:`user`,则名称为`User`(注意:为避免名字的冲突,特殊情况下请自定义,保证唯一性)" placement="top">
|
||||
<i class="el-icon-question"></i>
|
||||
</el-tooltip>
|
||||
路由名称
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
Reference in New Issue
Block a user