pipeline { agent { label 'node&&windows' } stages { stage ('Initialize') { steps { echo 'Initializing..' } } stage('Build') { steps { echo 'Building..' bat 'npm install' bat 'npm run build' } } stage('Test') { steps { echo 'Testing..' } } stage('Archive') { when { branch 'master' expression { currentBuild.result == null || currentBuild.result == 'SUCCESS' } } steps { echo 'Deploying....' dir("dist") { withCredentials([sshUserPrivateKey(credentialsId: 'id_rsa', keyFileVariable: 'identity', passphraseVariable: '', usernameVariable: 'userName')]) { script { def remote = [:] remote.name = "1blu" remote.host = "webhosting72.1blu.de" remote.allowAnyHosts = true remote.user = userName remote.identityFile = identity sshCommand remote: remote, command: "mkdir www/mi2.mama.productions/releases/${BUILD_NUMBER}" sshPut remote: remote, from: "${WORKSPACE}\\dist\\", into: "www/mi2.mama.productions/releases/${BUILD_NUMBER}" sshCommand remote: remote, command: "rm www/mi2.mama.productions/public" sshCommand remote: remote, command: "ln -s releases/${BUILD_NUMBER}/dist www/mi2.mama.productions/public" } } bat 'git init' bat 'git add .' bat 'git config --global user.email "jenkins@bosym.de"' bat 'git config --global user.name "Jenkins"' bat 'git commit -m "Deploy by Jenkins"' withCredentials([usernamePassword(credentialsId: 'e3d97a6f-476f-489f-a207-4766a1c420cf', usernameVariable: 'username', passwordVariable: 'password')]) { bat "git push --force --quiet \"https://$username:$password@git.bosym.de/Pascal/MI2Mario.git\" master:gh-pages" } } deleteDir() } } } }