81 lines
2.1 KiB
Plaintext
81 lines
2.1 KiB
Plaintext
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 ruoyi-ui/nginx/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: '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 = '192.168.2.147:30002'
|
|
DOCKERHUB_NAMESPACE = 'docker_username'
|
|
GITHUB_ACCOUNT = 'kubesphere'
|
|
APP_NAME = 'devops-java-sample'
|
|
HARBOR_NAMESPACE = 'ruoyi'
|
|
}
|
|
parameters {
|
|
string(name: 'TAG_NAME', defaultValue: '', description: '')
|
|
}
|
|
} |