Files
roxane/.gitea/workflows/deploy-preprod.yml
Nebulae 53eb3983f7
All checks were successful
Deploy Roxane to Preprod / deploy (push) Successful in 38s
fix(deploy-preprod file)
2025-12-21 13:35:09 +01:00

97 lines
2.5 KiB
YAML

name: Deploy Roxane to Preprod
on:
push:
branches:
- release
jobs:
deploy:
runs-on: docker
container:
image: nebulaed/php83-node22
steps:
- name: Install network & SSH tools
run: |
set -e
apt update
apt install -y iproute2 iputils-ping openssh-client git
- name: Show IPv6 network
run: |
ip -6 addr
ip -6 route
- name: Ping IPv6 preprod server
run: |
ping6 -c 3 2a01:e0a:bfe:a8a0::205
- name: Configure SSH
env:
SSH_HOST: ${{ vars.PREPROD_HOST }}
SSH_PORT: ${{ vars.PREPROD_PORT }}
run: |
set -e
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -6 -p "$SSH_PORT" "$SSH_HOST" >> ~/.ssh/known_hosts
echo "SSH_HOST_SSH=$SSH_HOST" >> "$GITEA_ENV"
- name: Deploy Roxane to preprod
env:
SSH_USER: ${{ vars.PREPROD_USER }}
SSH_PORT: ${{ vars.PREPROD_PORT }}
PREPROD_PATH: ${{ vars.PREPROD_PATH }}
GIT_REPO: ${{ vars.GIT_REPO }}
run: |
set -e
ssh -6 -o StrictHostKeyChecking=yes \
-p "$SSH_PORT" \
"$SSH_USER@$SSH_HOST_SSH" bash -s <<'EOF' "$PREPROD_PATH" "$GIT_REPO"
set -e
PREPROD_PATH="$1"
GIT_REPO="$2"
# Vérifier si le dépôt existe, sinon le cloner
if [ ! -d "$PREPROD_PATH/.git" ]; then
echo "Repository not found. Cloning from $GIT_REPO..."
mkdir -p "$(dirname "$PREPROD_PATH")"
git clone "$GIT_REPO" "$PREPROD_PATH"
cd "$PREPROD_PATH"
git checkout release
else
cd "$PREPROD_PATH"
echo "Pulling latest Roxane release..."
git fetch origin
git checkout release
git reset --hard origin/release
fi
echo "Installing Composer dependencies..."
composer install --no-dev --optimize-autoloader --no-interaction
echo "Building frontend with Vite..."
npm ci
npm run build
echo "Running database migrations..."
php artisan migrate --force
echo "Optimizing Roxane..."
php artisan optimize
echo "Restarting queue workers..."
php artisan queue:restart || true
echo "Roxane deployed successfully to preprod!"
EOF