name: Deploy to Production on Develop Push on: push: branches: - develop # Sproži se samo ob pushu na 'develop' vejo jobs: deploy: runs-on: ubuntu-latest # Uporabi standardni Linux runner steps: - name: Checkout repository uses: actions/checkout@v3 # Ta korak prenese kodo iz vašega repozitorija v delovno okolje runnerja - name: Check and Install rsync run: | if command -v rsync &> /dev/null; then echo "rsync is already installed." else echo "rsync not found. Installing..." sudo apt-get update && sudo apt-get install -y rsync fi # Preveri, če je rsync na voljo. Če ni, ga namesti. - name: Deploy to Server via rsync env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} # Naloži zasebni SSH ključ iz Gitea skrivnosti run: | # Zaženemo ssh-agent in mu dodamo zasebni ključ eval $(ssh-agent -s) echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - # Izvedemo rsync ukaz za sinhronizacijo # -a: arhivski način (ohrani pravice, lastnika, itd.) # -v: izpisuje podrobnosti (verbose) # -z: stisne podatke med prenosom # --delete: izbriše datoteke na cilju, ki ne obstajajo več v izvoru # -e: določi ukaz za povezavo (ssh z vašim portom) rsync -avz --delete -e "ssh -p ${{ secrets.SSH_PORT }} -o StrictHostKeyChecking=no" \ ./ \ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.TARGET_DIR }}