#!/usr/bin/env groovy String BASE_REMOTE_PATH = "//home/devops" String APP_REMOTE_PATH = "//mnt/docker-storage/containers/savefamily/sf-sims" pipeline { agent any tools { nodejs "22.15.0" } environment { GENERAL_CHANGES = "false" } stages { stage("🧱 Building") { steps { sh 'yarn run build' } } stage("🏗 Deploying") { steps { sshPublisher( publishers: [ sshPublisherDesc( verbose: true, configName: "Save Family", transfers: [ sshTransfer( cleanRemote: false, execCommand: "mkdir -p $APP_REMOTE_PATH" ), sshTransfer( cleanRemote: false, execCommand: "ln -sf $BASE_REMOTE_PATH/vault/savefamily/sf-sims/.env $APP_REMOTE_PATH/.env" ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "dist/**/*" ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "deployment/database/**/*", removePrefix: "deployment", ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "deployment/rabbit/**/*", removePrefix: "deployment", ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "rabbitmq_plugins/**/*" ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "deployment/develop/docker/**/*", removePrefix: "deployment/develop/docker", ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "deployment/Dockerfile", removePrefix: "deployment", ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "package.json", ), sshTransfer( cleanRemote: false, remoteDirectory: "$APP_REMOTE_PATH", sourceFiles: "package-lock.json", ), sshTransfer( cleanRemote: false, execCommand: "sh $APP_REMOTE_PATH/rebuild.sh" ) ] ) ] ) } } } post { failure { echo '👎🏼 Processing failed' } success { echo '👍🏼 Processing success' } } }