-
Notifications
You must be signed in to change notification settings - Fork 2
Git Einrichtung
-
im opt-Verzeichnis wird ein neuer Order
webbaki-dev
angelegt -
alle Inhalte von
webbaki-admin
werden inwebbaki-dev
kopiert -
webbaki-dev
übernimmt den build-Prozess undwebbaki-admin
bekommt einen neuen Ordner zum hochladen auf Github
In webbaki-admin wird ein neuer Ordner testgit
angelegt.
in testgit
- teste mit
git --version
ob git installiert ist, ansonsten installieren mitsudo apt install git
danach in testgit
den befehl git init
ausführen
der Ordner müsste jetzt testgit.git
heißen
Danach git einrichten:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
und mit git config --list
prüfen
Wenn man jetzt ein Repository klont, kann man da auch vom Server aus reinpuschen, sofern Berechtigungen vorhanden sind.
in webbaki-dev wird das autodeploy.sh
jetzt erweitert
Vorher erstellen wir ein expect-Script. Wenn wir pushen, braucht git ein Passwort, das manuell eingegeben werden soll.
Das Expect-Script kann das für uns erledigen
sudo nano expect.exp
#!/bin/expect
set timeout -1
spawn ./push_script.sh
expect "Password for 'https://[email protected]':"
send "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\n"
expect eof
als nächstes legen wir das push_script.sh
an
sudo nano push_script.sh
#!/bin/bash
cd /opt/webbaki-admin/testgit.git/WebBaKI
git checkout testMaster
git push
mit diesen Scripten können wir auf Github pushen
da wir auf master und testmaster pushen müssen legen wir noch 2 weitere Scripte an, die sehr ähnlich sind
sudo nano master_expect.exp
#!/bin/expect
set timeout -1
spawn ./master_push_script.sh
expect "Password for 'https://[email protected]':"
send "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\n"
expect eof
und master_push_script.sh
#!/bin/bash
cd /opt/webbaki-admin/testgit.git/WebBaKI
git checkout master
git push
#!/bin/bash
#stop webbaki
systemctl stop webbaki
apt-get update
apt-get upgrade -y
cd /opt/webbaki-dev
rm -rf WebBaKI
git clone -b testMaster https://[email protected]/THB-webbaki/WebBaKI/
#git clone https://[email protected]/schrammbox/WEBBAKI_2.0.git
cp application.properties /opt/webbaki-dev/WebBaKI/WeBBAKI/src/main/resources
cd /opt/webbaki-dev/WebBaKI/WeBBAKI
rm -rf target/
mvn clean package
cd /opt/webbaki-admin/testgit.git
rm -rf WebBaKI/
git clone -b testMaster https://[email protected]/THB-webbaki/WebBaKI/
cd /opt/webbaki-admin/testgit.git/WebBaKI
git pull
git checkout testMaster
cd /opt/webbaki-admin/testgit.git/WebBaKI/WeBBAKI
rm -rf target/
cd /opt/webbaki-dev/WebBaKI/WeBBAKI
cp -R target /opt/webbaki-admin/testgit.git/WebBaKI/WeBBAKI/
cd /opt/webbaki-admin/testgit.git/WebBaKI
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
git add .
git commit -am "Jar commit und push"
cd /opt/webbaki-dev
#git push
./expect.exp
./deploy.sh
systemctl start webbaki
Was ist passiert:
-
Wir stoppen Webbaki
-
updaten Ubuntu
-
Clonen vom Repository in webbaki-dev
-
bauen die .jar
-
jetzt gehen wir in den testgit.git Ordner
-
clonen das Repository noch mal, weil es sonst zu unerwünschen Nebenwirkungen kommt
-
ersetzen die Jar durch die neu gebaute Jar
-
dann verifizieren wir uns noch mal
-
dann adden und commiten wir
-
und jetzt führen wir das expect-Script zum pushen aus
-
deploy.sh ist um jetzt auf den master zu pushen
wir erstellen sudo nano deploy.sh
cd /opt/webbaki-admin/testgit.git
rm -rf WebBaKI/
git clone -b master https://[email protected]/THB-webbaki/WebBaKI/
cd /opt/webbaki-admin/testgit.git/WebBaKI
git pull
git checkout master
cd /opt/webbaki-admin/testgit.git/WebBaKI/WeBBAKI
rm -rf target/
cd /opt/webbaki-dev/WebBaKI/WeBBAKI
cp -R target /opt/webbaki-admin/testgit.git/WebBaKI/WeBBAKI/
cd /opt/webbaki-admin/testgit.git/WebBaKI
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
git add .
git commit -am "Jar commit und push"
cd /opt/webbaki-dev
#git push
./master_expect.exp
deploy wiederholt den beschriebenen Vorgang noch mal mit push auf den master
Die unterschiedlichen Ordner und Code Wiederholungen im sh-Script gehen auf ungewollte Nebenwirkungen vom localen Git Repository zurück