node {
    try {

        stage('checkout project') {
            checkout scm
        }

        stage('check env') {
            sh 'mvn -v'
            sh 'java -version'
        }

        stage('install zatca SDK') {
            sh 'mvn install:install-file -Dfile=libs/zatca-einvoicing-sdk-238-R3.3.3.jar -DgroupId=com.gazt -DartifactId=einvoicing-sdk -Dversion=238-R3.3.3 -Dpackaging=jar'
        }

        stage('run superadmin tests') {
            sh './mvnw test "-Dtest=SuperAdminAuthControllerTest"'
        }

        stage('clean package') {
            sh './mvnw clean package -DskipTests'
        }

        stage('verify JAR') {
            sh 'ls -l target/'
        }

        stage('inspect JAR') {
            sh 'jar tf target/RestForYou.jar'
        }

        stage('reload daemon') {
            sh 'sudo systemctl daemon-reload'
        }

        stage('restart service') {
            sh 'sudo systemctl restart RestForYou-0.0.1-SNAPSHOT'
        }

        stage('enable service') {
            sh 'sudo systemctl enable RestForYou-0.0.1-SNAPSHOT'
        }

        stage('verify service') {
            sh 'sudo systemctl status RestForYou-0.0.1-SNAPSHOT'
        }

    } catch (e) {
        throw e
    }
}