FabioFratini 10 miesięcy temu
rodzic
commit
4c5a62ce2f
1 zmienionych plików z 35 dodań i 48 usunięć
  1. 35 48
      Jenkinsfile

+ 35 - 48
Jenkinsfile

@@ -46,50 +46,41 @@ pipeline {
             }
         }
 
-        stage('Setup Tools') {
+        stage('Check Remote Tools') {
             steps {
                 script {
-                    // Check and install PHP if not available
-                    def phpInstalled = sh(script: 'php --version', returnStatus: true)
-                    if (phpInstalled != 0) {
-                        echo "Installing PHP ${PHP_VERSION}..."
-                        sh """
-                            sudo apt-get update
-                            sudo apt-get install -y software-properties-common
-                            sudo add-apt-repository -y ppa:ondrej/php
-                            sudo apt-get update
-                            sudo apt-get install -y php${PHP_VERSION} php${PHP_VERSION}-cli php${PHP_VERSION}-common php${PHP_VERSION}-curl php${PHP_VERSION}-mbstring php${PHP_VERSION}-mysql php${PHP_VERSION}-xml php${PHP_VERSION}-zip
-                        """
-                    }
-
-                    // Check and install Composer if not available
-                    def composerInstalled = sh(script: 'composer --version', returnStatus: true)
-                    if (composerInstalled != 0) {
-                        echo "Installing Composer..."
-                        sh """
-                            php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
-                            php composer-setup.php --install-dir=/usr/local/bin --filename=composer
-                            php -r "unlink('composer-setup.php');"
-                            chmod +x /usr/local/bin/composer
-                        """
-                    }
-
-                    // Check and install Node.js and NPM if not available
-                    def nodeInstalled = sh(script: 'node --version', returnStatus: true)
-                    if (nodeInstalled != 0) {
-                        echo "Installing Node.js ${NODE_VERSION}..."
-                        sh """
-                            curl -sL https://deb.nodesource.com/setup_${NODE_VERSION} | sudo -E bash -
-                            sudo apt-get install -y nodejs
-                        """
+                    // Check if the remote server has the required tools
+                    sshagent(['ssh-key-10.2.0.10']) {
+                        // Check PHP on remote server
+                        def remotePhp = sh(script: "ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'php --version || echo PHP_NOT_FOUND'", returnStdout: true).trim()
+                        echo "Remote PHP: ${remotePhp}"
+
+                        // Check Composer on remote server
+                        def remoteComposer = sh(script: "ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'composer --version || echo COMPOSER_NOT_FOUND'", returnStdout: true).trim()
+                        echo "Remote Composer: ${remoteComposer}"
+
+                        // Check Node.js on remote server
+                        def remoteNode = sh(script: "ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'node --version || echo NODE_NOT_FOUND'", returnStdout: true).trim()
+                        echo "Remote Node.js: ${remoteNode}"
+
+                        // Check NPM on remote server
+                        def remoteNpm = sh(script: "ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'npm --version || echo NPM_NOT_FOUND'", returnStdout: true).trim()
+                        echo "Remote NPM: ${remoteNpm}"
+
+                        // If any tool is missing, log a warning
+                        if (remotePhp.contains("PHP_NOT_FOUND") || remoteComposer.contains("COMPOSER_NOT_FOUND") ||
+                            remoteNode.contains("NODE_NOT_FOUND") || remoteNpm.contains("NPM_NOT_FOUND")) {
+                            echo "WARNING: Some required tools are missing on the remote server!"
+                            echo "Please install PHP, Composer, Node.js and NPM on ${REMOTE_HOST}"
+                        }
                     }
                 }
 
-                // Verify installations
-                sh 'php --version'
-                sh 'composer --version'
-                sh 'node --version'
-                sh 'npm --version'
+                // Check what's actually available locally (for logging purposes)
+                sh 'php --version || echo "PHP not available locally"'
+                sh 'composer --version || echo "Composer not available locally"'
+                sh 'node --version || echo "Node not available locally"'
+                sh 'npm --version || echo "NPM not available locally"'
             }
         }
 
@@ -101,22 +92,20 @@ pipeline {
 
         stage('Install Dependencies') {
             steps {
-                sh 'composer install --no-interaction --no-progress --prefer-dist'
+                echo "Dependencies will be installed on the target server during deployment"
             }
         }
 
         stage('Setup Environment') {
             steps {
-                sh 'php artisan key:generate || echo "Skipping key generation"'
-                sh 'php artisan config:clear'
-                sh 'php artisan cache:clear'
+                echo "Environment will be set up on the target server during deployment"
             }
         }
 
         stage('Build Assets') {
             steps {
-                sh 'npm install'
-                sh 'npm run build'
+                // Skip asset building on Jenkins server
+                echo "Assets will be built on the target server during deployment"
             }
         }
 
@@ -167,9 +156,7 @@ pipeline {
 
     post {
         always {
-            node('any') {
-                cleanWs()
-            }
+            cleanWs()
         }
         success {
             echo 'Build successful! The Polizia application is now deployed to 10.2.0.10'