diff --git a/Jenkinsfile b/Jenkinsfile index f045180..5b25a97 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,138 +1,138 @@ pipeline { agent any stages { - parallel { - stages { - stage('Start API') { - steps { - sh '''docker image prune -f - docker build --no-cache -t fbla-api . - docker-compose down - docker-compose up -d''' - } + parallel { + stages { + stage('Start API') { + steps { + sh '''docker image prune -f + docker build --no-cache -t fbla-api . + docker-compose down + docker-compose up -d''' } + } - stage('Run Tests') { - steps { - sh '''dart pub install - dart run ./test/fbla_api_test.dart''' + stage('Run Tests') { + steps { + sh '''dart pub install + dart run ./test/fbla_api_test.dart''' + } + } + } + stages { + stage('Flutter Cleanup') { + steps { + sh '''flutter upgrade --force + flutter pub upgrade + flutter --version + flutter doctor + flutter clean''' + } + } + + stage('Build') { + parallel { + stage('Web Build') { + steps { + sh 'flutter build web --release --base-href /fbla/' + } + } + + stage('Build Linux') { + steps { + sh 'flutter build linux --release' + } + } + + stage('Build APK') { + steps { + sh 'flutter build apk --release' + } } } } - stages { - stage('Flutter Cleanup') { - steps { - sh '''flutter upgrade --force - flutter pub upgrade - flutter --version - flutter doctor - flutter clean''' - } - } - stage('Build') { - parallel { - stage('Web Build') { - steps { - sh 'flutter build web --release --base-href /fbla/' - } - } - - stage('Build Linux') { - steps { - sh 'flutter build linux --release' - } - } - - stage('Build APK') { - steps { - sh 'flutter build apk --release' + stage('Deploy and Save') { + parallel { + stage('Deploy Web Local') { + steps { + script { + def remote = [ + name: 'HostServer', + host: '192.168.0.216', + user: '${env.JOBLINK_LOCAL_USER}', + password: '${env.JOBLINK_LOCAL_PASSWD}', + allowAnyHosts: true, + ] + sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/fbla-webserver/webfiles/fbla', remote: remote) + sshPut(from: 'build/web/', into: '/home/${env.JOBLINK_LOCAL_USER}/fbla-webserver', remote: remote) + sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/fbla-webserver/web /home/${env.JOBLINK_LOCAL_USER}/fbla-webserver/webfiles/fbla" } } } - } - stage('Deploy and Save') { - parallel { - stage('Deploy Web Local') { - steps { - script { - def remote = [ - name: 'HostServer', - host: '192.168.0.216', - user: '${env.JOBLINK_LOCAL_USER}', - password: '${env.JOBLINK_LOCAL_PASSWD}', - allowAnyHosts: true, - ] - sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/fbla-webserver/webfiles/fbla', remote: remote) - sshPut(from: 'build/web/', into: '/home/${env.JOBLINK_LOCAL_USER}/fbla-webserver', remote: remote) - sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/fbla-webserver/web /home/${env.JOBLINK_LOCAL_USER}/fbla-webserver/webfiles/fbla" - } - } - } - - stage('Save Other Builds') { - steps { - script { - def remote = [ - name: 'HostServer', - host: '192.168.0.216', - user: '${env.JOBLINK_LOCAL_USER}', - password: '${env.JOBLINK_LOCAL_PASSWD}', - allowAnyHosts: true, - ] - if(env.BRANCH_NAME == 'main') { - sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/linux', remote: remote) - sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux" - sshPut(from: 'build/linux/x64/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/linux', remote: remote) - sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux" - sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux/release/" - sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/apk', remote: remote) - sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk" - sshPut(from: 'build/app/outputs/apk/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/apk', remote: remote) - sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk" - sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk/release/" - } else { - sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux', remote: remote) - sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux" - sshPut(from: 'build/linux/x64/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux', remote: remote) - sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux" - sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux/release/" - sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk', remote: remote) - sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk" - sshPut(from: 'build/app/outputs/apk/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk', remote: remote) - sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk" - sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk/release/" - } + stage('Save Other Builds') { + steps { + script { + def remote = [ + name: 'HostServer', + host: '192.168.0.216', + user: '${env.JOBLINK_LOCAL_USER}', + password: '${env.JOBLINK_LOCAL_PASSWD}', + allowAnyHosts: true, + ] + if(env.BRANCH_NAME == 'main') { + sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/linux', remote: remote) + sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux" + sshPut(from: 'build/linux/x64/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/linux', remote: remote) + sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux" + sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/main/linux/release/" + sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/apk', remote: remote) + sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk" + sshPut(from: 'build/app/outputs/apk/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/main/apk', remote: remote) + sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk" + sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/main/apk/release/" + } else { + sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux', remote: remote) + sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux" + sshPut(from: 'build/linux/x64/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux', remote: remote) + sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux" + sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/dev/linux/release/" + sshRemove(path: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk', remote: remote) + sshCommand remote: remote, command: "mkdir /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk" + sshPut(from: 'build/app/outputs/apk/release', into: '/home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk', remote: remote) + sshCommand remote: remote, command: "mv /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk/release/* /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk" + sshCommand remote: remote, command: "rm -R /home/${env.JOBLINK_LOCAL_USER}/builds/dev/apk/release/" } } } } } + } - stage('Deploy Remote') { - when { - expression { - env.BRANCH_NAME == 'main' - } - } - steps { - script { - def remote = [ - name: 'MarinoDev', - host: 'marinodev.com', - port: 21098, - user: '${env.JOBLINK_REMOTE_USER}', - identityFile: '/var/jenkins_home/marinoDevPrivateKey', - passphrase: '${env.JOBLINK_REMOTE_PASSWD}', - allowAnyHosts: true, - ] - sshRemove(path: '/home/${env.JOBLINK_REMOTE_USER}/public_html/fbla', remote: remote) - sshPut(from: '/var/jenkins_home/workspace/fbla-ui_main/build/web/', into: '/home/${env.JOBLINK_REMOTE_USER}/public_html/', remote: remote) - sshCommand remote: remote, command: "mv /home/${env.JOBLINK_REMOTE_USER}/public_html/web /home/${env.JOBLINK_REMOTE_USER}/public_html/fbla" - } + stage('Deploy Remote') { + when { + expression { + env.BRANCH_NAME == 'main' } } + steps { + script { + def remote = [ + name: 'MarinoDev', + host: 'marinodev.com', + port: 21098, + user: '${env.JOBLINK_REMOTE_USER}', + identityFile: '/var/jenkins_home/marinoDevPrivateKey', + passphrase: '${env.JOBLINK_REMOTE_PASSWD}', + allowAnyHosts: true, + ] + sshRemove(path: '/home/${env.JOBLINK_REMOTE_USER}/public_html/fbla', remote: remote) + sshPut(from: '/var/jenkins_home/workspace/fbla-ui_main/build/web/', into: '/home/${env.JOBLINK_REMOTE_USER}/public_html/', remote: remote) + sshCommand remote: remote, command: "mv /home/${env.JOBLINK_REMOTE_USER}/public_html/web /home/${env.JOBLINK_REMOTE_USER}/public_html/fbla" + } + } + } } } }