Jenkinsfile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!groovy
  2. pipeline {
  3. agent any
  4. parameters {
  5. string(name: 'TAG_NAME', defaultValue: '', description: '')
  6. }
  7. environment {
  8. // DockerHub 凭证 ID(登录您的 DockerHub)
  9. DOCKER_CREDENTIAL_ID = 'dockerhub-id'
  10. // GitHub 凭证 ID (推送 tag 到 GitHub 仓库)
  11. GITHUB_CREDENTIAL_ID = 'github-id'
  12. // kubeconfig 凭证 ID (访问接入正在运行的 Kubernetes 集群)
  13. KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
  14. // 镜像的推送
  15. REGISTRY = 'docker.io'
  16. // DockerHub 账号名
  17. DOCKERHUB_NAMESPACE = 'docker_username'
  18. // GitHub 账号名
  19. GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro'
  20. // 应用名称
  21. APP_NAME = 'patrol-server'
  22. // 应用部署路径
  23. APP_DEPLOY_BASE_DIR = '/media/pi/KINGTON/data/work/projects/'
  24. }
  25. stages {
  26. stage('检出') {
  27. steps {
  28. git url: "https://gitee.com/will-we/ruoyi-vue-pro.git",
  29. branch: "devops"
  30. }
  31. }
  32. stage('构建') {
  33. steps {
  34. // TODO 解决多环境链接、密码不同配置临时方案
  35. sh 'if [ ! -d "' + "${env.HOME}" + '/resources" ];then\n' +
  36. ' echo "配置文件不存在无需修改"\n' +
  37. 'else\n' +
  38. ' cp -rf ' + "${env.HOME}" + '/resources/*.yaml ' + "${env.APP_NAME}" + '/src/main/resources\n' +
  39. ' echo "配置文件替换"\n' +
  40. 'fi'
  41. sh 'mvn clean package -Dmaven.test.skip=true'
  42. }
  43. }
  44. stage('部署') {
  45. steps {
  46. sh 'cp -f ' + ' bin/deploy.sh ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}"
  47. sh 'cp -f ' + "${env.APP_NAME}" + '/target/*.jar ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" +'/build/'
  48. archiveArtifacts "${env.APP_NAME}" + '/target/*.jar'
  49. sh 'chmod +x ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
  50. sh 'bash ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
  51. }
  52. }
  53. }
  54. }