diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..d5eb792 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,43 @@ +pipeline { + agent any + environment { + OUTPUT_DIR = "${env.BRANCH_NAME == "main" ? "plate-tool" : "plate-tool-beta"}" + } + + stages { + stage('Build') { + steps { + sh ''' + . "$HOME/.cargo/env" + trunk build --release --public-url "cool-stuff/$OUTPUT_DIR/" + ''' + } + } + stage('Archive') { + steps { + zip zipFile: "dist.zip", archive: true, dir: "dist/" + archiveArtifacts artifacts: "dist.zip", fingerprint: true + } + } + stage('Transfer') { + steps { + sh 'echo "put -r dist/" | sftp oracle' + } + } + stage('Deploy') { + steps { + sh ''' + ssh oracle "sudo rm -rf /usr/share/nginx/html/$OUTPUT_DIR/ && sudo mv dist /usr/share/nginx/html/$OUTPUT_DIR" + ''' + } + } + } + post { + always { + cleanWs(notFailBuild: true, + deleteDirs: true, + cleanWhenNotBuilt: false, + patterns: [[pattern: 'target/', type: 'EXCLUDE']]) + } + } +}