feat: mettre à jour le flux de travail de déploiement pour déclencher sur la branche principale et améliorer le processus de transfert de source
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
name: Deploy Webzine
|
name: Deploy Webzine
|
||||||
run-name: Deploy to production by @${{ github.actor }}
|
run-name: Deploy to production by @${{ github.actor }}
|
||||||
|
|
||||||
on: [push]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# ─────────────────────────────────────────────
|
# ─────────────────────────────────────────────
|
||||||
@@ -12,6 +15,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Écriture de la clé SSH dans un fichier temporaire
|
# Écriture de la clé SSH dans un fichier temporaire
|
||||||
- name: Setup SSH key
|
- name: Setup SSH key
|
||||||
run: |
|
run: |
|
||||||
@@ -20,16 +26,15 @@ jobs:
|
|||||||
chmod 600 ~/.ssh/id_prod
|
chmod 600 ~/.ssh/id_prod
|
||||||
ssh-keyscan -p ${{ secrets.PROD_SSH_PORT || 22 }} ${{ secrets.PROD_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
|
ssh-keyscan -p ${{ secrets.PROD_SSH_PORT || 22 }} ${{ secrets.PROD_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
|
||||||
|
|
||||||
# Transfert du code source sur le serveur
|
# Compression du code source et transfert vers le serveur
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Upload source to server
|
- name: Upload source to server
|
||||||
run: |
|
run: |
|
||||||
rsync -az --delete \
|
tar --exclude='.git' --exclude='*.user' -czf /tmp/webzine-src.tar.gz .
|
||||||
-e "ssh -i ~/.ssh/id_prod -p ${{ secrets.PROD_SSH_PORT || 22 }} -o StrictHostKeyChecking=no" \
|
scp -i ~/.ssh/id_prod \
|
||||||
./ \
|
-P ${{ secrets.PROD_SSH_PORT || 22 }} \
|
||||||
${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }}:/opt/webzine/prod/src/
|
-o StrictHostKeyChecking=no \
|
||||||
|
/tmp/webzine-src.tar.gz \
|
||||||
|
${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }}:/tmp/webzine-src.tar.gz
|
||||||
|
|
||||||
# Build et redémarrage du conteneur directement sur le serveur
|
# Build et redémarrage du conteneur directement sur le serveur
|
||||||
- name: Build and deploy on PRODUCTION server
|
- name: Build and deploy on PRODUCTION server
|
||||||
@@ -40,6 +45,11 @@ jobs:
|
|||||||
${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }} << 'ENDSSH'
|
${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }} << 'ENDSSH'
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
echo "=== [PROD] Extraction des sources ==="
|
||||||
|
mkdir -p /opt/webzine/prod/src
|
||||||
|
tar -xzf /tmp/webzine-src.tar.gz -C /opt/webzine/prod/src/
|
||||||
|
rm /tmp/webzine-src.tar.gz
|
||||||
|
|
||||||
echo "=== [PROD] Construction de l'image ==="
|
echo "=== [PROD] Construction de l'image ==="
|
||||||
docker build \
|
docker build \
|
||||||
-t webzine:latest \
|
-t webzine:latest \
|
||||||
|
|||||||
Reference in New Issue
Block a user