@Library('sphinx-lib@main') _

pipeline {
    agent {
        kubernetes {
            yaml libraryResource('templates/pod.yaml')
        }
    }
    stages {
        stage('Build') {
            steps {
                mavenBuild(goals: 'clean package -DskipTests')
            }
        }
        stage('Analyse') {
            steps {
                sonarScan('lab-demo')
            }
        }
        stage('Package') {
            steps {
                container('build') {
                    sh '''
                        tar -czf app.tar.gz target/*.jar 2>/dev/null || \
                        tar -czf app.tar.gz src/ requirements.txt 2>/dev/null || \
                        tar -czf app.tar.gz .
                        ls -lh app.tar.gz
                    '''
                }
            }
        }
        stage('Publish') {
            steps {
                publishArtifact(file: 'app.tar.gz', path: 'demo/1.0.0')
            }
        }
        stage('Deploy') {
            steps {
                deployToK3s(name: 'demo', image: 'nginx:latest', replicas: 2)
            }
        }
    }
}
