/** * 七个 Java 微服务注册表。promote-image / whole Jenkinsfile 共用。 */ def getServiceRegistry() { return [ [prodDir: 'gateway', module: 'alien-gateway', serverPort: '8000', withLib: false, deployName: 'gateway'], [prodDir: 'store', module: 'alien-store', serverPort: '50014', withLib: true, deployName: 'store'], [prodDir: 'second', module: 'alien-second', serverPort: '50015', withLib: false, deployName: 'second'], [prodDir: 'store-platform', module: 'alien-store-platform', serverPort: '50016', withLib: false, deployName: 'store-platform'], [prodDir: 'lawyer', module: 'alien-lawyer', serverPort: '50017', withLib: true, deployName: 'lawyer'], [prodDir: 'job', module: 'alien-job', serverPort: '50108', withLib: false, deployName: 'job'], [prodDir: 'dining', module: 'alien-dining', serverPort: '50019', withLib: false, deployName: 'dining'], ] } def multiParamName(String prodDir) { return 'MULTI_' + prodDir.replace('-', '_') } def filterServices(List registry, Map params) { def mode = params.DEPLOY_MODE if (mode == 'whole') { return registry } if (mode == 'single') { def one = registry.find { it.prodDir == params.SINGLE_SERVICE } if (one == null) { throw new IllegalArgumentException("未找到 SINGLE_SERVICE=${params.SINGLE_SERVICE}") } return [one] } if (mode == 'multi') { def selected = [] registry.each { s -> def pn = multiParamName(s.prodDir) def v = params[pn] if (v instanceof Boolean ? v : 'true'.equalsIgnoreCase(v?.toString())) { selected << s } } if (selected.isEmpty()) { throw new IllegalArgumentException('multi 模式:请至少勾选一项 MULTI_*') } return selected } throw new IllegalArgumentException("未知 DEPLOY_MODE: ${mode}") } return this