pipeline {
    agent { label 'built-in' }

    options {
        buildDiscarder(logRotator(numToKeepStr: '10'))
    }

    environment {
        DEPLOY_PATH = "/var/www/bangararaju.kottedi.in/admin"
    }

    stages {

        stage('Checkout') {
            steps {
                checkout scm
            }
        }

        stage('Inject Environment File') {
            steps {
                configFileProvider(
                    [configFile(fileId: 'admin-uat-properties',
                                targetLocation: 'src/environments/environment.ts',
                                replaceTokens: true)]
                ) {
                    echo "Environment file injected"
                }
            }
        }

        stage('Build Angular') {
            steps {
                sh '''
                ng build --configuration production --base-href /admin/
                '''
            }
        }

        stage('Deploy') {
            steps {
                sh '''
                rm -rf $DEPLOY_PATH/*
                cp -r dist/portfolio-admin/browser/* $DEPLOY_PATH/
                chown -R www-data:www-data $DEPLOY_PATH
                systemctl reload nginx
                '''
            }
        }

        stage('Health Check') {
            steps {
                sh '''
                sleep 2
                curl -f https://bangararaju-uat.kottedi.in/admin
                '''
            }
        }
    }

    post {
        failure {
            echo "Deployment failed!"
        }
        success {
            echo "Deployment successful!"
        }
    }
}
