name: Deploy to Staging and Production # Workflow se sproži ob vsakem push dogodku na katero koli vejo on: [push] jobs: deploy: runs-on: ubuntu-latest # Uporabimo standardni Linux runner, ki je na voljo v Gitea Actions steps: # 1. Korak: Prevzem kode iz repozitorija # Ta korak prenese kodo iz vaše veje v okolje, kjer se izvaja workflow. - name: Checkout repository uses: actions/checkout@v3 # 2. Korak: Namestitev SSH ključa za varno povezavo s strežnikom # Uporabimo skrivnost (secret) SSH_PRIVATE_KEY, ki jo morate nastaviti v Gitea nastavitvah repozitorija. - name: Install SSH Key uses: shimataro/ssh-key-action@v2 with: key: ${{ secrets.SSH_PRIVATE_KEY }} known_hosts: 'just-a-placeholder-so-we-dont-get-errors' # Potrebno za delovanje akcije # 3. Korak: Dodajanje prstnega odtisa strežnika v known_hosts # To prepreči interaktivno vprašanje o zaupanju strežnika in avtomatizira prijavo. - name: Adding Known Hosts run: ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts # 4. Korak: Razmestitev na RAZVOJNI (development) strežnik # Ta korak se izvede SAMO, če je ime veje (gitea.ref_name), na katero se je pushalo, 'develop'. - name: Deploy to Development Server if: gitea.ref_name == 'develop' run: | echo "🚀 Deploying branch 'develop' to Development environment..." rsync -avz --delete \ -e "ssh -p 22" \ --exclude '.gitea/' \ --exclude '.git/' \ ./ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.TARGET_DIR }} echo "✅ Deployment to Development successful!" # 5. Korak: Razmestitev na PRODUKCIJSKI (master) strežnik # Ta korak se izvede SAMO, če je ime veje, na katero se je pushalo, 'master'. - name: Deploy to Production Server if: gitea.ref_name == 'master' run: | echo "🚀 Deploying branch 'master' to Production environment..." rsync -avz --delete \ -e "ssh -p 22" \ --exclude '.gitea/' \ --exclude '.git/' \ ./ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.TARGET_MASTER_DIR }} echo "✅ Deployment to Production successful!"