📜  离子发布 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:41:03.680000             🧑  作者: Mango

离子发布 - Shell-Bash

简介

离子发布(Ion Release)是一款基于 Shell-Bash 编写的轻量级工具,用于自动化版本发布流程。使用离子发布,您可以方便、快速地完成代码打包、上传、部署等一系列操作,解放双手,提高工作效率。

特点
  • 简单易用,只需几行命令即可完成发布流程
  • 支持 FTP、SFTP、SCP、AWS S3 等多种传输方式
  • 支持 Git、SVN、CVS 等多种版本管理工具
  • 支持本地和远程服务器发布
  • 支持发布前的自定义脚本和回调
安装和使用

离子发布可以直接通过 Git 克隆到本地,也可以通过 Homebrew 安装。以下是在 macOS 系统上使用 Homebrew 安装的示例:

brew tap ionburstcloud/ion
brew install ion-<client>

安装完成后,您可以使用 ion 命令行工具来发布您的代码。以下是一个基本的发布流程:

#!/bin/bash

# 设置参数
APP_NAME="myapp"
VERSION="1.0.0"
LOCAL_FILE="./dist/$APP_NAME-$VERSION.zip"
REMOTE_SERVER="example.com"
REMOTE_PATH="/var/www/$APP_NAME"

# 打包代码
npm run build
zip -r -X "$LOCAL_FILE" .

# 发布到远程服务器
ion release \
    --source "$LOCAL_FILE" \
    --target "$REMOTE_SERVER:$REMOTE_PATH" \
    --transport sftp \
    --cleanup

上述代码中,我们首先设置了参数,包括应用名称、版本号、本地文件路径、远程服务器地址和路径。随后我们使用 npm run build 命令打包代码,然后使用 zip 命令将代码打包成一个压缩文件。最后我们使用 ion release 命令来发布代码,指定了源文件、目标服务器、传输方式和清除临时文件等选项。

高级用法

除了基本的发布流程,离子发布还支持许多高级用法,比如使用多个传输方式、设置上传限速、设置 SSH 代理、使用外部配置文件等等。以下是一些典型的示例:

使用多个传输方式
ion release \
    --source "$LOCAL_FILE" \
    --target "$REMOTE_SERVER1:$REMOTE_PATH1,$REMOTE_SERVER2:$REMOTE_PATH2" \
    --transport sftp,scp

上述代码中,我们使用了多个传输方式(SFTP 和 SCP),并将源文件上传到了两个不同的服务器上。

设置上传限速
ion release \
    --source "$LOCAL_FILE" \
    --target "$REMOTE_SERVER:$REMOTE_PATH" \
    --transport sftp \
    --speed-limit 100k

上述代码中,我们使用了 --speed-limit 选项设置了上传限速为 100KB/s。

设置 SSH 代理
ion release \
    --source "$LOCAL_FILE" \
    --target "$REMOTE_SERVER:$REMOTE_PATH" \
    --transport sftp \
    --proxy "socks5://127.0.0.1:1080"

上述代码中,我们使用了 --proxy 选项设置了 SSH 代理为 SOCKS5 协议,地址为 127.0.0.1:1080

使用外部配置文件
ion release --config ion.config.json

上述代码中,我们使用了 --config 选项指定了一个外部配置文件 ion.config.json,该文件包含了发布的所有参数和选项。您可以将这个文件放在项目的根目录下,这样就可以方便地复用和管理发布配置了。

总结

离子发布是一款非常方便、实用的自动化版本发布工具,它提供了多种传输方式、版本管理工具和高级选项,支持本地和远程服务器发布。如果您经常需要手动发布代码,那么离子发布将是您的不二选择。