diff --git a/.gitea/workflows/odoo-restore-open_workshop_install.yaml b/.gitea/workflows/odoo-restore-open_workshop_install.yaml index 45898ab..aefd417 100644 --- a/.gitea/workflows/odoo-restore-open_workshop_install.yaml +++ b/.gitea/workflows/odoo-restore-open_workshop_install.yaml @@ -6,21 +6,20 @@ on: branches: - 13.0_dev - env: URL_BACKUP: https://odoo.lan.hobbyhimmel.de URL_RESTORE: http://hobbybackend2.fritz.box:9013 jobs: run-odoo-backup-in-docker: - runs-on: ["hobbybackend2","ubuntu-latest"] # Gibt an, dass der Job entweder auf 'hobbybackend1' und 'ubuntu-latest' läuft. + runs-on: ["hobbybackend2", "ubuntu-latest"] # Gibt an, dass der Job entweder auf 'hobbybackend1' und 'ubuntu-latest' läuft. steps: - name: Checkout the repository # Dieser Schritt holt den Code des Repositories in die Action-Umgebung. # Dies ist notwendig, um auf Dateien im Repository wie Skripte oder Konfigurationen zugreifen zu können. uses: actions/checkout@v4 - + - name: Load environment variables from .env run: | set -a @@ -40,7 +39,7 @@ jobs: run: | docker run -d --name ${{ github.workflow }} ubuntu:latest tail -f /dev/null docker exec ${{ github.workflow }} apt-get update - docker exec ${{ github.workflow }} apt-get install -y gnupg openssh-client curl sshpass + docker exec ${{ github.workflow }} apt-get install -y gnupg openssh-client curl sshpass - name: Copy SSH keys to the container # In diesem Schritt werden SSH-Schlüssel aus den GitHub Secrets in temporäre Dateien geschrieben. @@ -52,7 +51,7 @@ jobs: echo "${{ secrets.OPENSSH_PUBLIC_KEY }}" > ssh_public_key docker cp ssh_private_key ${{ github.workflow }}:/root/.ssh/id_rsa docker cp ssh_public_key ${{ github.workflow }}:/root/.ssh/id_rsa.pub - docker exec ${{ github.workflow }} chmod 600 /root/.ssh/id_rsa + docker exec ${{ github.workflow }} chmod 600 /root/.ssh/id_rsa - name: Copy PGP keys to the container # Hier werden die GPG-Schlüssel (PGP-Schlüssel) in den Container kopiert, um Backups verschlüsseln zu können. @@ -65,7 +64,7 @@ jobs: docker cp pgp_public_key.asc ${{ github.workflow }}:/root/pgp_public_key.asc docker exec ${{ github.workflow }} gpg --batch --import /root/pgp_private_key.asc docker exec ${{ github.workflow }} gpg --import /root/pgp_public_key.asc - rm pgp_private_key.asc pgp_public_key.asc + rm pgp_private_key.asc pgp_public_key.asc - name: Add Host to Known Hosts # In diesem Schritt wird der SSH-Host-Schlüssel des Remote-Servers (ALL_INKL_HOST) zum "known_hosts"-File @@ -75,7 +74,7 @@ jobs: echo "This is the host: ${{ secrets.ALL_INKL_HOST }}" docker exec ${{ github.workflow }} bash -c "mkdir -p /root/.ssh && touch /root/.ssh/known_hosts && chmod 600 /root/.ssh/known_hosts" docker exec ${{ github.workflow }} bash -c "ssh-keyscan -H '${{ secrets.ALL_INKL_HOST }}' >> /root/.ssh/known_hosts" - docker exec ${{ github.workflow }} bash -c "cat /root/.ssh/known_hosts" # Optional: Ausgabe zur Überprüfung + docker exec ${{ github.workflow }} bash -c "cat /root/.ssh/known_hosts" - name: Run the restore script in Docker container # In diesem Schritt wird das Skript `odoo-restore.sh` in den Container kopiert und dort ausgeführt. @@ -89,22 +88,23 @@ jobs: -e sftp_host=${{ secrets.SFTP_HOST }} \ -e sftp_user=${{ secrets.SFTP_USER }} \ -e sftp_password=${{ secrets.SFTP_PASSWD }} \ - ${{ github.workflow }} /bin/bash -c "bash /root/odoo-restore.sh '${{ env.URL_RESTORE }}'" + ${{ github.workflow }} /bin/bash -c "bash /root/odoo-restore.sh '${{ env.URL_RESTORE }}'" + - name: Uninstall vvow_pos - # TODO: In diesem Schritt wird das Modul `vvow_pos` deinstalliert, um sicherzustellen, dass es keine Konflikte mit der neuen Datenbank gibt. - # Dies geschieht durch den Aufruf des Odoo-CLI-Befehls `odoo-bin` mit den entsprechenden Parametern. - # Der Befehl wird im Docker-Container ausgeführt + run: | + docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c " + cd /home/odoo/custom_addons/open_workshop/scripts && \ + /opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME}} < uninstall_vvow_pos.py" + - name: Clone or update custom_addons open_workshop repository - working-directory: . run: | docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c " git config --global pull.ff only && \ if [ ! -d /home/odoo/custom_addons/open_workshop ]; then git clone https://gitea:${{ secrets.BUILD_ACTION }}@gitea.lan.hobbyhimmel.de/hobbyhimmel/open_workshop.git /home/odoo/custom_addons/open_workshop; - cd /home/odoo/custom_addons/open_workshop && git fetch && git checkout ${{ env.ODOO_VERSION }}_dev && git pull; - else - cd /home/odoo/custom_addons/open_workshop && git fetch && git checkout ${{ env.ODOO_VERSION }}_dev && git pull; - fi" + fi && \ + cd /home/odoo/custom_addons/open_workshop && \ + git fetch && git checkout ${{ env.ODOO_VERSION }}_dev && git pull" - name: Fix Database hobbyhimmel with fix_missing_pos_partner.py # In diesem Schritt wird das Skript `fix_missing_pos_partner.py` ausgeführt, um sicherzustellen, dass alle Partner in der Datenbank korrekt sind. @@ -113,28 +113,23 @@ jobs: cd /home/odoo/custom_addons/open_workshop/scripts && \ /opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME}} < fix_missing_pos_partner.py" - - name: Uninstall vvow_pos - docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c " - cd /home/odoo/custom_addons/open_workshop/scripts && \ - /opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME}} < uninstall_vvow_pos.py" - - name: Install open_workshop # Install open_workshop and run necessary migrations run: | docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c " - /opt/odoo/odoo/odoo-bin -d ${{ env.DB_NAME}} -i open_workshop --stop-after-init &&\ - docker restart hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }}"" + /opt/odoo/odoo/odoo-bin -d ${{ env.DB_NAME}} -i open_workshop --stop-after-init" + docker restart hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} - name: Uninstall vvow_einweisungen run: | docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c " cd /home/odoo/custom_addons/open_workshop/scripts && \ - /opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME}} < uninstall_vvow_einwweisungen.py &&\ - docker restart hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }}" + /opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME}} < uninstall_vvow_einweisungen.py" + docker restart hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} - name: Stop and remove Docker container # Nachdem das Backup abgeschlossen ist, wird der Docker-Container gestoppt und entfernt, # um keine Ressourcen auf dem Host unnötig zu verbrauchen. run: | docker stop ${{ github.workflow }} - docker rm ${{ github.workflow }} + docker rm ${{ github.workflow }}