优化
This commit is contained in:
+8
-1
@@ -20,7 +20,10 @@ def serviceJars = [
|
||||
|
||||
pipeline {
|
||||
// 每个 Jenkins 子 Job 使用自己的 workspace,因此不同服务可以并行执行 mvn clean。
|
||||
agent any
|
||||
// 开发环境利用开发服务器的计算资源;测试及其他环境继续留在原 master 节点。
|
||||
agent {
|
||||
label "${params.ENVIRONMENT == 'development' ? 'java-dev' : 'master'}"
|
||||
}
|
||||
|
||||
tools {
|
||||
maven 'maven-3.8.8'
|
||||
@@ -162,6 +165,9 @@ pipeline {
|
||||
steps {
|
||||
script {
|
||||
String credentialId = "firstleg-${params.ENVIRONMENT}-env"
|
||||
boolean localDevelopmentDeploy = params.ENVIRONMENT == 'development' &&
|
||||
env.NODE_LABELS?.tokenize()?.contains('java-dev')
|
||||
withEnv(["DEVELOPMENT_DEPLOY_LOCAL=${localDevelopmentDeploy}"]) {
|
||||
withCredentials([file(credentialsId: credentialId, variable: 'DEPLOY_ENV_FILE')]) {
|
||||
sh "sh deploy/scripts/deploy-services.sh '${params.ENVIRONMENT}' '${env.RESOLVED_IMAGE_REPOSITORY}' '${env.RESOLVED_IMAGE_TAG}' '${env.RESOLVED_SERVICE}' \"\$DEPLOY_ENV_FILE\""
|
||||
}
|
||||
@@ -169,6 +175,7 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
|
||||
@@ -44,6 +44,40 @@ for service in $SERVICES; do
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "${DEVELOPMENT_DEPLOY_LOCAL:-false}" = "true" ]; then
|
||||
echo "开发镜像已在开发节点本机构建,直接部署: $SERVICE_CSV"
|
||||
install -d -m 750 "$REMOTE_DIR"
|
||||
|
||||
SUFFIX="${IMAGE_TAG}.$$.${SERVICE_CSV}"
|
||||
LOCAL_ENV_TMP="$REMOTE_DIR/.env.$SUFFIX.tmp"
|
||||
LOCAL_COMPOSE_TMP="$REMOTE_DIR/docker-compose.yml.$SUFFIX.tmp"
|
||||
install -m 600 "$ENV_FILE" "$LOCAL_ENV_TMP"
|
||||
install -m 644 "$COMPOSE_FILE" "$LOCAL_COMPOSE_TMP"
|
||||
mv -f "$LOCAL_ENV_TMP" "$REMOTE_DIR/.env"
|
||||
mv -f "$LOCAL_COMPOSE_TMP" "$REMOTE_DIR/docker-compose.yml"
|
||||
|
||||
for service in $SERVICES; do
|
||||
docker image inspect "$IMAGE_REPOSITORY/$service:$IMAGE_TAG" >/dev/null
|
||||
done
|
||||
|
||||
cd "$REMOTE_DIR"
|
||||
export DEPLOY_ENV=development
|
||||
export IMAGE_REPOSITORY IMAGE_TAG
|
||||
|
||||
docker compose \
|
||||
--project-name firstleg-development \
|
||||
--env-file .env \
|
||||
-f docker-compose.yml \
|
||||
up -d --remove-orphans --pull never $SERVICES
|
||||
|
||||
docker compose \
|
||||
--project-name firstleg-development \
|
||||
--env-file .env \
|
||||
-f docker-compose.yml \
|
||||
ps $SERVICES
|
||||
exit 0
|
||||
fi
|
||||
|
||||
run_ssh() {
|
||||
ssh -i "$SSH_KEY" \
|
||||
-o BatchMode=yes \
|
||||
|
||||
Reference in New Issue
Block a user