Deploy-Helper est un petit outil de déploiement d'artefact ciblé aux développeurs de logiciels.
J'ai écrit Deploy-Helper pour m'aider à déployer des artefacts sur un réseau de test lorsque je travaille sur les choses. J'aurais probablement pu utiliser mon IDE pour ça, mais ce n'est pas amusant!
Étapes sans déploiement-helper:
Étapes avec Deploy-Helper:
Le fichier de configuration par défaut deploy-helper.json doit être dans votre répertoire de travail.
Exemple de configuration:
{
// 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"
]
}
}Cet exemple de configuration fait ce qui suit:
rm pour supprimer l'ancien artefactscp pour copier un nouvel artefact sur serveur Vous devez également ajouter deploy-helper.json à votre fichier .gitignore .
Remarque: il ne peut y avoir qu'un seul artefact.
{DEST_ADDRESS} : adresse de destination
{DEST_NAME} : nom de destination
{DEST_PATH} : chemin de destination
{SSH_USER} : utilisateur SSH
{SSH_PORT} : port ssh
{ARTIFACT_PATH} : chemin d'artefact
{ARTIFACT_NAME} : nom d'artefact
| Long | Court | Description |
|---|---|---|
| - Configager | -C | Remplacer l'emplacement de configuration |
| --verbeux | -v | Si vous êtes activé, la sortie du processus sera redirigé vers STDOUT & STDERR |
| --destination | -d | Remplacer les destinations (liste de virgule séparée) |
L'installation de Deploy-Helper est aussi simple que de télécharger le pot à partir de la dernière version (en théorie). Cependant, vous devriez probablement garder le pot à une sorte d'emplacement central.
C'est ainsi que j'ai «installé» Deploy-Helper sur ma machine Linux avec 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 Ensuite, rouvrez simplement votre terminal (ou source ~/.zshrc ) et vous avez terminé!
Commande de base:
java --enable-preview -jar deploy-helper-VERSION.jar OPTIONS
Liant la commande à un alias:
alias deploy='java --enable-preview -jar /opt/deploy-helper/deploy-helper-VERSION.jar'
Exécution de déploiement-helper avec une autre configuration:
deploy -c ~/my-deploy-config.json
Exécution de déploiement-helper avec des destinations spécifiées:
deploy -d service1,service4,service5
Prérequis:
Mesures:
git clone https://github.com/cerus/deploy-helper.gitcd deploy-helpermvn clean packageVeuillez suivre les directives de contribution