name: Deploy Roxane to Preprod on: push: branches: - release jobs: deploy: runs-on: ubuntu-latest container: image: nebulaed/php83-node22 steps: - name: Debug Env run: | echo "${{ secrets.PREPROD_HOST }}" echo "${{ secrets.PREPROD_PORT }}" echo "${{ secrets.PREPROD_USER }}" echo "${{ secrets.SSH_PRIVATE_KEY }}" echo "${{ secrets.PREPROD_PATH }}" - name: Configure SSH env: SSH_HOST: ${{ secrets.PREPROD_HOST }} SSH_PORT: ${{ secrets.PREPROD_PORT }} run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 case "$SSH_HOST" in *:*) SSH_HOST_SSH="[$SSH_HOST]" ;; *) SSH_HOST_SSH="$SSH_HOST" ;; esac echo "Host used for SSH: $SSH_HOST_SSH" # Ajoute l'hôte dans known_hosts ssh-keyscan -t ed25519 -p "$SSH_PORT" "$SSH_HOST" >> ~/.ssh/known_hosts # Exporte pour usage dans les étapes suivantes echo "SSH_HOST_SSH=$SSH_HOST_SSH" >> $GITHUB_ENV - name: Deploy Roxane env: SSH_USER: ${{ secrets.PREPROD_USER }} SSH_PORT: ${{ secrets.PREPROD_PORT }} SSH_HOST_SSH: ${{ env.SSH_HOST_SSH }} PREPROD_PATH: ${{ secrets.PREPROD_PATH }} run: | ssh -p "$SSH_PORT" "$SSH_USER@$SSH_HOST_SSH" <<'ENDSSH' set -e cd $PREPROD_PATH echo "Pulling latest Roxane release..." git pull origin release 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!" ENDSSH