Skip to content

Merge pull request #6 from coundia/dev #21

Merge pull request #6 from coundia/dev

Merge pull request #6 from coundia/dev #21

Workflow file for this run

name: Deploy to OVH Server
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Clean install dependencies
run: |
rm -rf node_modules package-lock.json
npm install
- name: Build Astro project
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: astro-build
path: dist/
deploy-on-test:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: astro-build
path: dist/
- name: Deploy to test OVH Server
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_USER: ${{ secrets.SERVER_USER }}
SERVER_IP: ${{ secrets.SERVER_IP }}
SERVER_PATH: "/var/www/test.pcoundia.com/"
run: |
# Vérification des variables
if [[ -z "$SSH_PRIVATE_KEY" || -z "$SERVER_USER" || -z "$SERVER_IP" ]]; then
echo "Error: Missing environment variables!"
exit 1
fi
# Configure SSH for access
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | tee ~/.ssh/id_rsa > /dev/null
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H "$SERVER_IP" >> ~/.ssh/known_hosts
# Test SSH connection
ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_IP" "echo 'SSH connection successful'"
# Deploy to the test server
rsync -avz --chown=$SERVER_USER:www-data --chmod=775 --delete dist/ "$SERVER_USER@$SERVER_IP:$SERVER_PATH"
selenium-test:
runs-on: ubuntu-latest
services:
selenium-hub:
image: selenium/hub:latest
ports:
- 4444:4444
chrome-node:
image: selenium/node-chrome:latest
env:
SE_EVENT_BUS_HOST: selenium-hub
SE_EVENT_BUS_PUBLISH_PORT: 4442
SE_EVENT_BUS_SUBSCRIBE_PORT: 4443
steps:
- name: Checkout Selenium Tests Repository
run: |
git clone https://github.com/coundia/selenium-java-pcoundia.git selenium-tests
- name: Run Selenium Tests
env:
SERVER_URL: "https://test.pcoundia.com" # Point to your test server URL
run: |
cd selenium-tests
mvn clean test -Dapp.url=$SERVER_URL
deploy-on-prod:
needs: selenium-test
runs-on: ubuntu-latest
steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: astro-build
path: dist/
- name: Deploy to prod OVH Server
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SERVER_USER: ${{ secrets.SERVER_USER }}
SERVER_IP: ${{ secrets.SERVER_IP }}
SERVER_PATH: "/var/www/pcoundia.com/"
run: |
# Vérification des variables
if [[ -z "$SSH_PRIVATE_KEY" || -z "$SERVER_USER" || -z "$SERVER_IP" ]]; then
echo "Error: Missing environment variables!"
exit 1
fi
# Configure SSH for access
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" | tr -d '\r' | tee ~/.ssh/id_rsa > /dev/null
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H "$SERVER_IP" >> ~/.ssh/known_hosts
# Test SSH connection
ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_IP" "echo 'SSH connection successful'"
# Deploy to the production server
rsync -avz --chown=$SERVER_USER:www-data --chmod=775 --delete dist/ "$SERVER_USER@$SERVER_IP:$SERVER_PATH"