This commit is contained in:
1 parent
99ed153bd6
commit
d3dc8cae66
2 files changed
+66
-31
No files matched your search
+43
-18
@@ -1,28 +1,53 @@
|
||||
name: Deploy to Production on Develop Push
|
||||
name: Deploy to Staging and Production
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
# Workflow se sproži ob vsakem push dogodku na katero koli vejo
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
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@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Deploy to Server via rsync
|
||||
# 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: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
|
||||
echo "🚀 Deploying branch 'develop' to Development environment..."
|
||||
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 }}
|
||||
-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!"
|
||||
Reference in new issue
Block a user