Skip to content

Commit fd46676

Browse files
authored
Merge pull request #5 from coundia/dev
Dev
2 parents 051038c + 5c6a22c commit fd46676

File tree

2 files changed

+117
-6
lines changed

2 files changed

+117
-6
lines changed

.github/workflows/deploy.yml

+56-6
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
name: astro-build
2727
path: dist/
2828

29-
deploy:
29+
deploy-on-test:
3030
needs: build
3131
runs-on: ubuntu-latest
3232
steps:
@@ -36,7 +36,57 @@ jobs:
3636
name: astro-build
3737
path: dist/
3838

39-
- name: Deploy to OVH Server
39+
- name: Deploy to test OVH Server
40+
env:
41+
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
42+
SERVER_USER: ${{ secrets.SERVER_USER }}
43+
SERVER_IP: ${{ secrets.SERVER_IP }}
44+
SERVER_PATH: "/var/www/test.pcoundia.com/"
45+
run: |
46+
# Vérification des variables
47+
if [[ -z "$SSH_PRIVATE_KEY" || -z "$SERVER_USER" || -z "$SERVER_IP" ]]; then
48+
echo "Error: Missing environment variables!"
49+
exit 1
50+
fi
51+
52+
# Configure SSH for access
53+
mkdir -p ~/.ssh
54+
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | tee ~/.ssh/id_rsa > /dev/null
55+
chmod 600 ~/.ssh/id_rsa
56+
ssh-keyscan -H "$SERVER_IP" >> ~/.ssh/known_hosts
57+
58+
# Test SSH connection
59+
ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_IP" "echo 'SSH connection successful'"
60+
61+
# Deploy to the test server
62+
rsync -avz --chown=$SERVER_USER:www-data --chmod=775 --delete dist/ "$SERVER_USER@$SERVER_IP:$SERVER_PATH"
63+
64+
test:
65+
runs-on: ubuntu-latest
66+
needs: deploy-on-test
67+
steps:
68+
- name: Checkout Selenium Tests Repository
69+
run: |
70+
git clone https://github.com/coundia/selenium-java-pcoundia.git selenium-tests
71+
72+
- name: Run Selenium Tests
73+
env:
74+
SERVER_URL: "https://test.pcoundia.com" # Point to your test server URL
75+
run: |
76+
cd selenium-tests
77+
mvn clean test -Dapp.url=$SERVER_URL
78+
79+
deploy-on-prod:
80+
needs: test
81+
runs-on: ubuntu-latest
82+
steps:
83+
- name: Download build artifacts
84+
uses: actions/download-artifact@v4
85+
with:
86+
name: astro-build
87+
path: dist/
88+
89+
- name: Deploy to prod OVH Server
4090
env:
4191
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
4292
SERVER_USER: ${{ secrets.SERVER_USER }}
@@ -49,14 +99,14 @@ jobs:
4999
exit 1
50100
fi
51101
52-
# Configuration of SSH
102+
# Configure SSH for access
53103
mkdir -p ~/.ssh
54104
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | tee ~/.ssh/id_rsa > /dev/null
55105
chmod 600 ~/.ssh/id_rsa
56106
ssh-keyscan -H "$SERVER_IP" >> ~/.ssh/known_hosts
57107
58-
# Test SSH
108+
# Test SSH connection
59109
ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_IP" "echo 'SSH connection successful'"
60-
110+
111+
# Deploy to the production server
61112
rsync -avz --chown=$SERVER_USER:www-data --chmod=775 --delete dist/ "$SERVER_USER@$SERVER_IP:$SERVER_PATH"
62-

DOC/deploy.test.sh

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/bin/bash
2+
3+
# Configuration
4+
DOMAIN="test.pcoundia.com"
5+
PROJECT_DIR="/var/www/test.pcoundia.com"
6+
GIT_REPO="[email protected]:coundia/astro_angular_tailwindcss_portfolio.git"
7+
8+
echo "🚀 Mise à jour des paquets..."
9+
sudo apt update && sudo apt upgrade -y
10+
11+
echo "📦 Installation des dépendances..."
12+
sudo apt install -y curl software-properties-common unzip git nginx certbot python3-certbot-nginx
13+
14+
echo "🛠️ Génération du certificat SSL avant la configuration de Nginx..."
15+
sudo certbot certonly --standalone -d $DOMAIN -d www.$DOMAIN --non-interactive --agree-tos -m admin@$DOMAIN
16+
17+
sudo rm /etc/nginx/sites-available/$DOMAIN
18+
sudo rm /etc/nginx/sites-enabled/$DOMAIN
19+
20+
echo "🔧 Configuration de Nginx pour $DOMAIN..."
21+
sudo bash -c "cat > /etc/nginx/sites-available/$DOMAIN <<EOF
22+
server {
23+
listen 80;
24+
server_name $DOMAIN www.$DOMAIN;
25+
return 301 https://\$host\$request_uri;
26+
}
27+
28+
server {
29+
listen 443 ssl;
30+
server_name $DOMAIN www.$DOMAIN;
31+
root $PROJECT_DIR;
32+
index index.html;
33+
34+
ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem;
35+
ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem;
36+
include /etc/letsencrypt/options-ssl-nginx.conf;
37+
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
38+
39+
# Gestion des routes Angular
40+
location / {
41+
index index.html;
42+
try_files \\\$uri \\\$uri \\\$uri/index.html /index.html;
43+
}
44+
45+
error_log /var/log/nginx/$DOMAIN.error.log;
46+
access_log /var/log/nginx/$DOMAIN.access.log;
47+
}
48+
EOF"
49+
50+
sudo ln -sf /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/
51+
sudo systemctl restart nginx
52+
53+
echo "🔧 Configuration des permissions..."
54+
sudo chown -R www-data:www-data $PROJECT_DIR
55+
sudo chmod -R 775 $PROJECT_DIR
56+
57+
echo "🛠️ Vérification de la configuration Nginx..."
58+
sudo nginx -t && sudo systemctl reload nginx
59+
60+
echo "✅ Déploiement terminé avec succès !"
61+
echo "🌍 Accédez à https://$DOMAIN pour voir votre site."

0 commit comments

Comments
 (0)