diff --git a/Jenkinsfile.service b/Jenkinsfile.service index 283449f4d..8216948b2 100644 --- a/Jenkinsfile.service +++ b/Jenkinsfile.service @@ -170,9 +170,12 @@ pipeline { steps { script { boolean development = params.ENVIRONMENT == 'development' + boolean testTargetIsLocal = ['master', 'built-in'].contains(env.NODE_NAME) || + ['master', 'built-in'].any { label -> env.NODE_LABELS?.tokenize()?.contains(label) } boolean targetIsLocal = development ? env.NODE_LABELS?.tokenize()?.contains('java-dev') - : env.NODE_NAME == 'master' + : testTargetIsLocal + echo "构建节点 ${env.NODE_NAME} 部署到 ${params.ENVIRONMENT},目标是否为本机: ${targetIsLocal}" String credentialId = "firstleg-${params.ENVIRONMENT}-env" String remoteTarget = development ? 'deploy@172.31.198.8' : 'deploy@172.31.198.7' String remoteKey = development diff --git a/scripts/test-environment-pipeline-contract.test.mjs b/scripts/test-environment-pipeline-contract.test.mjs index 6604b6886..e76beaf5b 100644 --- a/scripts/test-environment-pipeline-contract.test.mjs +++ b/scripts/test-environment-pipeline-contract.test.mjs @@ -33,6 +33,7 @@ test('production deployments cannot skip tests', () => { test('Java builds use the shared builder pool and deploy on the target environment node', () => { assert.match(pipeline, /agent \{ label 'java-builder' \}/) assert.match(pipeline, /\['development', 'test'\]\.contains\(params\.ENVIRONMENT\)/) + assert.match(pipeline, /\['master', 'built-in'\]\.contains\(env\.NODE_NAME\)/) assert.match(pipeline, /deploy-built-service\.sh/) assert.match(directDeployScript, /docker save "\$IMAGE" \| gzip -1 \| run_ssh/) assert.match(directDeployScript, /--pull never/)