ci: switch sh to bat — Windows Jenkins has no sh in process PATH

docker and ssh are both natively available on Windows. Credential vars
(%ACR_PASS%, %SSH_KEY%) use bat syntax; Groovy vars use GString.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-04-25 06:50:01 +08:00
父节点 b13820032d
当前提交 5bd6d56436

11
Jenkinsfile vendored
查看文件

@ -26,8 +26,8 @@ pipeline {
withCredentials([string(credentialsId: 'ACR_PASSWORD', variable: 'ACR_PASS')]) {
script {
def imageName = "${ACR_REGISTRY}/${ACR_NAMESPACE}/${params.SERVICE}:${params.IMAGE_TAG}"
sh """
docker login ${ACR_REGISTRY} -u ${ACR_USERNAME} -p \${ACR_PASS}
bat """
docker login ${ACR_REGISTRY} -u ${ACR_USERNAME} -p %ACR_PASS%
docker build --build-arg SERVICE_MODULE=${params.SERVICE} -t ${imageName} .
docker push ${imageName}
docker rmi ${imageName}
@ -44,11 +44,8 @@ pipeline {
script {
def svcName = params.SERVICE.replace('-service', '')
def imageName = "${ACR_REGISTRY}/${ACR_NAMESPACE}/${params.SERVICE}:${params.IMAGE_TAG}"
sh """
ssh -i \${SSH_KEY} -o StrictHostKeyChecking=no ${PROD_USER}@${PROD_HOST} \
"docker pull ${imageName} && \
docker compose -f ${COMPOSE_FILE} up -d --no-deps ${svcName} && \
docker image prune -f"
bat """
ssh -i "%SSH_KEY%" -o StrictHostKeyChecking=no ${PROD_USER}@${PROD_HOST} "docker pull ${imageName} && docker compose -f ${COMPOSE_FILE} up -d --no-deps ${svcName} && docker image prune -f"
"""
}
}