pipeline {
    agent any
    environment {
    	OUTPUT_DIR = "${env.BRANCH_NAME == "main" ? "plate-tool" : "plate-tool-beta"}"
    }

    stages {
    	stage('Parent') {
	when { anyOf { branch 'main'; branch 'beta-release' } }
	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']])
	}
    }
}