RuoYi-Cloud/Devops/ruoyi-ui/Jenkinsfile

81 lines
2.5 KiB
Groovy

pipeline {
agent {
node {
label 'nodejs'
}
}
stages {
stage('拉取代码') {
agent none
steps {
container('nodejs') {
git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false)
sh 'ls -al'
}
}
}
stage('项目编译') {
agent none
steps {
container('nodejs') {
sh '''cd ruoyi-ui/
npm install --registry=https://registry.npmmirror.com'''
sh '''cd ruoyi-ui/
npm run build:prod
ls -al'''
}
}
}
stage('构建镜像') {
agent none
steps {
container('nodejs') {
sh 'ls'
sh 'docker build -t ruoyi-ui:latest -f Devops/ruoyi-ui/Dockerfile ./ruoyi-ui/'
}
}
}
stage('推送镜像') {
agent none
steps {
container('nodejs') {
withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) {
sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin'
sh 'docker tag ruoyi-ui:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-ui:SNAPSHOT-$BUILD_NUMBER'
sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-ui:SNAPSHOT-$BUILD_NUMBER'
}
}
}
}
stage('部署到dev环境') {
agent none
steps {
kubernetesDeploy(configs: 'Devops/ruoyi-ui/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
}
}
}
environment {
DOCKER_CREDENTIAL_ID = 'dockerhub-id'
GITHUB_CREDENTIAL_ID = 'github-id'
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
REGISTRY = '10.206.16.14:30002'
DOCKERHUB_NAMESPACE = 'docker_username'
GITHUB_ACCOUNT = 'kubesphere'
APP_NAME = 'devops-java-sample'
HARBOR_NAMESPACE = 'ruoyi'
}
parameters {
string(name: 'TAG_NAME', defaultValue: '', description: '')
}
}