diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index acd049e..aff6ff4 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -3,42 +3,37 @@ name: Deploy to Production on Develop Push on: push: branches: - - develop # Sproži se samo ob pushu na 'develop' vejo + - develop jobs: deploy: - runs-on: ubuntu-latest # Uporabi standardni Linux runner + runs-on: ubuntu-latest # Ta oznaka se ujema z vašim novim runnerjem steps: - name: Checkout repository - uses: actions/checkout@v3 - # Ta korak prenese kodo iz vašega repozitorija v delovno okolje runnerja + uses: actions/checkout@v4 # Priporočena je uporaba novejše verzije - - name: Check and Install rsync + - name: 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. + # Posodobi seznam paketov in namesti rsync in openssh-client znotraj runnerja + # Uporabnik znotraj Gitea runnerja IMA sudo pravice. + # Težava je bila v Docker kontejnerju, ki ga uporabljate v labels. + # Najboljša rešitev je, da orodja namestimo direktno na runnerja, PREDEN uporabimo rsync. + sudo apt-get update + sudo apt-get install -y rsync openssh-client - 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 - + # 1. Pripravimo SSH okolje + mkdir -p ~/.ssh + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa - # 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" \ + # 2. Sinhroniziramo datoteke z rsync + rsync -avz --delete \ + --exclude=".git/" \ + --exclude=".gitea/" \ + --exclude=".gitignore" \ + -e "ssh -p ${{ secrets.SSH_PORT }} -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no" \ ./ \ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.TARGET_DIR }} \ No newline at end of file