Deployming-Helper ist ein kleines Tool für die Artefaktbereitstellung, die sich an Softwareentwickler richtet.
Ich habe den Bereitstellungshelfer geschrieben, um mir bei der Arbeit an Dingen Artefakte in einem Testnetzwerk bereitzustellen. Ich hätte meine IDE wahrscheinlich dafür verwenden können, aber das macht keinen Spaß!
Schritte ohne Bereitstellung von Helfer:
Schritte mit Bereitstellungs-Helfer:
Die Standard-Konfigurationsdatei deploy-helper.json muss in Ihrem Arbeitsverzeichnis enthalten sein.
Beispielkonfiguration:
{
// 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"
]
}
}Diese Beispielkonfiguration führt Folgendes aus:
rm -Befehl aus, um altes Artefakt zu löschenscp -Befehl aus, um neues Artefakt auf Server zu kopieren Sie sollten auch deploy-helper.json zu Ihrer .gitignore Datei hinzufügen.
Hinweis: Es kann nur ein Artefakt geben.
{DEST_ADDRESS} : Zieladresse
{DEST_NAME} : Zielname
{DEST_PATH} : Zielpfad
{SSH_USER} : SSH -Benutzer
{SSH_PORT} : SSH -Port
{ARTIFACT_PATH} : Artefaktpfad
{ARTIFACT_NAME} : Artefaktname
| Lang | Kurz | Beschreibung |
|---|---|---|
| -Konfiguration | -C | Überschreiben Sie den Konfigurationsort |
| --verbose | -V | Wenn aktiviert wird, wird die Prozessausgabe in STDOut & Stderr umgeleitet |
| --Ziel | -D | Überschreiben Sie die Ziele (Comma Separierte Liste) |
Die Installation des Bereitstellers ist so einfach wie das Herunterladen des Glass aus der neuesten Version (theoretisch). Sie sollten jedoch wahrscheinlich das Glas an einer Art zentraler Lage halten.
So "installierte" ich die Bereitstellung von Helfer auf meinem Linux-Computer mit 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 Dann öffnen Sie einfach Ihr Terminal (oder source ~/.zshrc ) und Sie sind fertig!
Grundbefehl:
java --enable-preview -jar deploy-helper-VERSION.jar OPTIONS
Bindung des Befehls an einen Alias:
alias deploy='java --enable-preview -jar /opt/deploy-helper/deploy-helper-VERSION.jar'
Ausführen von Bereitstellungshelfer mit einer anderen Konfiguration:
deploy -c ~/my-deploy-config.json
Ausführen von Bereitstellungshelfer mit bestimmten Zielen:
deploy -d service1,service4,service5
Voraussetzungen:
Schritte:
git clone https://github.com/cerus/deploy-helper.gitcd deploy-helpermvn clean package ausBitte befolgen Sie die Beitragsrichtlinien