Skip to content

Git Einrichtung

TxRuX edited this page Sep 4, 2023 · 5 revisions

neuer Order webbaki-dev

  • im opt-Verzeichnis wird ein neuer Order webbaki-dev angelegt

  • alle Inhalte von webbaki-admin werden in webbaki-dev kopiert

  • webbaki-dev übernimmt den build-Prozess und webbaki-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 mit sudo 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

autodeploy.sh anpassen

#!/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

deploy.sh

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

Clone this wiki locally