service-registry.groovy 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * 七个 Java 微服务注册表。promote-image / whole Jenkinsfile 共用。
  3. */
  4. def getServiceRegistry() {
  5. return [
  6. [prodDir: 'gateway', module: 'alien-gateway', serverPort: '8000', withLib: false, deployName: 'gateway'],
  7. [prodDir: 'store', module: 'alien-store', serverPort: '50014', withLib: true, deployName: 'store'],
  8. [prodDir: 'second', module: 'alien-second', serverPort: '50015', withLib: false, deployName: 'second'],
  9. [prodDir: 'store-platform', module: 'alien-store-platform', serverPort: '50016', withLib: false, deployName: 'store-platform'],
  10. [prodDir: 'lawyer', module: 'alien-lawyer', serverPort: '50017', withLib: true, deployName: 'lawyer'],
  11. [prodDir: 'job', module: 'alien-job', serverPort: '50108', withLib: false, deployName: 'job'],
  12. [prodDir: 'dining', module: 'alien-dining', serverPort: '50019', withLib: false, deployName: 'dining'],
  13. ]
  14. }
  15. def multiParamName(String prodDir) {
  16. return 'MULTI_' + prodDir.replace('-', '_')
  17. }
  18. def filterServices(List registry, Map params) {
  19. def mode = params.DEPLOY_MODE
  20. if (mode == 'whole') {
  21. return registry
  22. }
  23. if (mode == 'single') {
  24. def one = registry.find { it.prodDir == params.SINGLE_SERVICE }
  25. if (one == null) {
  26. throw new IllegalArgumentException("未找到 SINGLE_SERVICE=${params.SINGLE_SERVICE}")
  27. }
  28. return [one]
  29. }
  30. if (mode == 'multi') {
  31. def selected = []
  32. registry.each { s ->
  33. def pn = multiParamName(s.prodDir)
  34. def v = params[pn]
  35. if (v instanceof Boolean ? v : 'true'.equalsIgnoreCase(v?.toString())) {
  36. selected << s
  37. }
  38. }
  39. if (selected.isEmpty()) {
  40. throw new IllegalArgumentException('multi 模式:请至少勾选一项 MULTI_*')
  41. }
  42. return selected
  43. }
  44. throw new IllegalArgumentException("未知 DEPLOY_MODE: ${mode}")
  45. }
  46. return this