Implement-Helper es una pequeña herramienta para el despliegue de artefactos que se realizan en los desarrolladores de software.
Escribí Deploy-Helper para ayudarme a implementar artefactos en una red de pruebas cuando estoy trabajando en las cosas. Probablemente podría haber usado mi IDE para eso, ¡pero eso no es divertido!
Pasos sin implementar a Helper:
Pasos con implementación-Helper:
El archivo de configuración predeterminado deploy-helper.json debe estar en su directorio de trabajo.
Ejemplo de configuración:
{
// Required
"destinations" : [
{
// Name of the destination
"name" : "service1" ,
// Normally you would set a real address or a ip here,
// but you could also use aliases from your ssh config (like I did here)
"address" : "test-network" ,
// The path for our destination (used for the ssh session)
"path" : "/home/user/services/service1/data/" ,
// SSH_COMMANDS (ssh first, then commands) or
// COMMANDS_SSH (commands first, then ssh)
"order" : "SSH_COMMANDS"
} ,
{
"name" : "service2" ,
"address" : "test-network" ,
"path" : "/home/user/services/service1/data/" ,
"order" : "SSH_COMMANDS"
}
] ,
// Required
"artifact" : {
// Directory that contains the artifact
"directory" : "./target" ,
// Name regex that matches the artifact
"name" : "my-software-[\d.A-Za-z-]+\.jar" ,
// Sorting operation for possible artifacts
// LAST_MODIFIED_ASC (oldest file first) or
// LAST_MODIFIED_DESC (newest file first)
"sort" : "LAST_MODIFIED_DESC"
} ,
// Optional
"commands" : [
// Can be either a string or an array of strings
"scp {ARTIFACT_PATH} {SSH_USER}@{DEST_ADDRESS}:{DEST_PATH}{ARTIFACT_NAME}"
] ,
// Optional
"ssh" : {
// If port is > 0, the ssh command will be USER@HOST:PORT
// If the port is <= 0, the ssh command will be USER@HOST
"port" : 0 ,
// How long to wait for the connection to establish
"sleep" : "2000" ,
// The ssh user
"user" : "user" ,
// Plaintext password auth requires 'sshpass'
// "password": "foobar",
"commands" : [
// Commands have to be a string
"rm my-software-*.jar"
]
}
}Esta configuración de ejemplo hace lo siguiente:
rm para eliminar el artefacto antiguoscp para copiar nuevo artefacto al servidor También debe agregar deploy-helper.json a su archivo .gitignore .
Nota: Solo puede haber un artefacto.
{DEST_ADDRESS} : dirección de destino
{DEST_NAME} : nombre de destino
{DEST_PATH} : ruta de destino
{SSH_USER} : usuario de SSH
{SSH_PORT} : puerto ssh
{ARTIFACT_PATH} : ruta de artefacto
{ARTIFACT_NAME} : nombre de artefacto
| Largo | Corto | Descripción |
|---|---|---|
| --config | -do | Anular la ubicación de configuración |
| --verboso | -V | Si está habilitado, la salida del proceso se redirigirá a STDOUT & STDERR |
| --destino | -d | Anular los destinos (lista separada por coma) |
Instalar implement-helper es tan fácil como descargar el jar de la última versión (en teoría). Sin embargo, probablemente debería mantener el frasco en algún tipo de ubicación central.
Así es como 'instalé' implementando la máquina de implementación en mi máquina Linux con ZSH:
sudo mkdir /opt/deploy-helpersudo chown max:max /opt/deploy-helpermv ~/Downloads/deploy-helper-*.jar /opt/deploy-helperecho "alias deploy='java --enable-preview -jar /opt/deploy-helper/deploy-helper-VERSION.jar'" >> ~/.zshrc ¡Simplemente vuelva a abrir su terminal (o source ~/.zshrc ) y termine!
Comando básico:
java --enable-preview -jar deploy-helper-VERSION.jar OPTIONS
Vinculando el comando a un alias:
alias deploy='java --enable-preview -jar /opt/deploy-helper/deploy-helper-VERSION.jar'
Ejecutando implementar-Helper con otra configuración:
deploy -c ~/my-deploy-config.json
Ejecutando implementarse-Helper con destinos especificados:
deploy -d service1,service4,service5
Prerrequisitos:
Pasos:
git clone https://github.com/cerus/deploy-helper.gitcd deploy-helpermvn clean packageSiga las pautas de contribución