Git-deliver环境变量参考:解锁自定义部署流程的强大能力
【免费下载链接】git-deliverDelivery system based on git push and ssh项目地址: https://gitcode.com/gh_mirrors/gi/git-deliver
Git-deliver是一款基于Git推送和SSH的部署系统,通过环境变量可以灵活定制部署流程。本文将详细介绍常用环境变量及其应用场景,帮助新手用户快速掌握自定义部署的核心技巧。
核心环境变量详解
部署路径与版本控制
DELIVERY_PATH
指定远程服务器上的部署目录路径,默认值从远程仓库URL解析。例如在deliver.sh中定义为:
export DELIVERY_PATH="${DELIVERY_PATH:-}"可用于在脚本中精确定位部署位置,如presets/yisti/post-checkout/02-deploy.remote.sh中使用:
cd "$DELIVERY_PATH"VERSION_SHA
当前部署版本的Git提交哈希值,自动从Git仓库获取。在deliver.sh中通过以下方式设置:
export VERSION_SHA="${VERSION_SHA:-}"常用于版本标识和缓存管理,如生成唯一缓存目录:
cp -r "$MAINCACHEDIR$DELIVERY_PATH/$PREVIOUS_VERSION" "$MAINCACHEDIR$DELIVERY_PATH/$CURRENT_VERSION"远程服务器配置
REMOTE_SERVER
远程服务器地址(含用户名),格式为user@host。在deliver.sh中通过解析Git远程URL自动设置:
export REMOTE_SERVER="$REMOTE_SERVER"用于SSH连接和远程命令执行,如tests.sh中的测试场景:
REMOTE_SERVER="'$SSH_TEST_USER@$SSH_TEST_HOST'" run_remote "pwd"REMOTE_PATH
远程服务器上的仓库根路径,默认从Git远程URL提取。在deliver.sh中定义:
export REMOTE_PATH="$REMOTE_PATH"用于构建完整的远程文件路径,如磁盘空间检查脚本presets/core/pre-delivery/01-disk-space.sh:
FREE_KBYTES=`run_remote "df -k \"$REMOTE_PATH\" | awk '/[0-9]%/{print \\\$(NF-2)}'"`部署流程控制
DELIVERY_STAGE
当前执行的部署阶段,可选值包括pre-delivery、post-checkout、pre-symlink等。在deliver.sh中动态设置:
DELIVERY_STAGE="pre-symlink"用于条件执行不同阶段的脚本,如判断是否执行回滚阶段:
if [[ "$DELIVERY_STAGE" != "rollback-pre-symlink" ]]; then LAST_STAGE_REACHED="$DELIVERY_STAGE" fiIS_ROLLBACK
标记是否处于回滚模式,布尔值(true/false)。在deliver.sh中定义:
export IS_ROLLBACK="$IS_ROLLBACK"用于在部署脚本中区分正常部署和回滚操作,例如调整缓存策略或跳过某些构建步骤。
实用场景示例
1. 自定义部署目录
通过设置DELIVERY_PATH覆盖默认部署路径:
DELIVERY_PATH="/var/www/custom-app" git deliver origin main2. 限制部署阶段
指定只执行特定阶段的脚本:
DELIVERY_STAGE="post-symlink" git deliver origin main3. 调试远程连接
通过REMOTE_SERVER和GIT_SSH调试SSH连接问题:
GIT_SSH="./deliver_ssh_wrapper.sh" REMOTE_SERVER="debug@example.com" git deliver origin main环境变量优先级说明
Git-deliver环境变量遵循以下优先级(从高到低):
- 命令行直接设置(如
VAR=value git deliver) - 项目配置文件(
.deliver/config) - 系统环境变量
- 默认值(在
deliver.sh中定义)
常用环境变量速查表
| 变量名 | 作用 | 示例值 |
|---|---|---|
| DELIVERY_DATE | 部署时间戳 | 2023-10-05_14-30-22 |
| REMOTE_PROTO | 远程连接协议 | ssh/local |
| FAILED_SCRIPT | 失败脚本路径 | pre-delivery/01-check.sh |
| GIT_DELIVER_PATH | 工具安装路径 | /usr/local/git-deliver |
通过灵活配置这些环境变量,你可以轻松定制符合项目需求的部署流程,实现从代码提交到生产环境的无缝交付。
【免费下载链接】git-deliverDelivery system based on git push and ssh项目地址: https://gitcode.com/gh_mirrors/gi/git-deliver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考