Jenkinsfile 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. pipeline {
  2. agent any
  3. parameters {
  4. choice(name: 'ENV', choices: ['prod'], description: '部署环境')
  5. }
  6. environment {
  7. // 阿里云 Docker 仓库的地址和用户名
  8. DOCKER_REGISTRY = "registry.cn-shanghai.aliyuncs.com"
  9. DOCKER_NAMESPACE = "advich-group"
  10. DOCKER_REPO = "weichi-crm-web"
  11. DOCKER_IMAGE = "${DOCKER_REGISTRY}/${DOCKER_NAMESPACE}/${DOCKER_REPO}:latest"
  12. }
  13. stages {
  14. stage('拉取Git代码') {
  15. steps {
  16. checkout scmGit(branches: [[name: '${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: 'fb3553e7-6ea6-4f34-92a0-6ba34a71c5b5', url: 'https://git.dev.advichcloud.com/wangfan/weichi-crm-web.git']])
  17. }
  18. }
  19. stage('编译打包代码') {
  20. steps {
  21. nodejs('node8') {
  22. bat "npm install"
  23. bat "npm run build"
  24. }
  25. }
  26. }
  27. stage('Build and Push Docker Image') {
  28. steps {
  29. script {
  30. // 使用刚才创建的凭证
  31. withCredentials([usernamePassword(credentialsId: '41a5dc65-0283-4d56-ace5-36bc08350b08', usernameVariable: 'REGISTRY_USERNAME', passwordVariable: 'REGISTRY_PASSWORD')]) {
  32. // 构建Docker镜像
  33. bat "docker build -t ${DOCKER_IMAGE} ."
  34. // 登录阿里云Docker Registry
  35. bat "docker login -u ${REGISTRY_USERNAME} -p ${REGISTRY_PASSWORD} ${DOCKER_REGISTRY}"
  36. // 推送镜像到阿里云Docker Registry
  37. bat "docker push ${DOCKER_IMAGE}"
  38. }
  39. }
  40. }
  41. }
  42. stage('Deploy to Server') {
  43. when {
  44. expression { return params.ENV == 'prod' }
  45. }
  46. steps {
  47. sshPublisher(publishers: [sshPublisherDesc(configName:'CRM(阿里云)', transfers: [sshTransfer(cleanRemote: false, excludes: '',
  48. execCommand: '''
  49. docker login -u wangfan@1934160439855919 -p Initial0 registry.cn-shanghai.aliyuncs.com
  50. docker pull registry.cn-shanghai.aliyuncs.com/advich-group/weichi-crm-web:latest
  51. docker rm -f weichi-crm-web || true
  52. docker run -d --name weichi-crm-web -p 80:80 registry.cn-shanghai.aliyuncs.com/advich-group/weichi-crm-web:latest''',execTimeout: 120000, flatten: false, makeEmptyDirs: false,
  53. noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '',
  54. remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')],
  55. usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose:
  56. false)])
  57. }
  58. }
  59. }
  60. }