pipeline {
    agent any

    environment {
        IMAGE_NAME = 'mcp-bridge'
        IMAGE_TAG = "${BUILD_NUMBER}"
        REGISTRY = ''  // 填写你的镜像仓库地址
    }

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

        stage('Build Image') {
            steps {
                sh '''
                    docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .
                    docker tag ${IMAGE_NAME}:${IMAGE_TAG} ${IMAGE_NAME}:latest
                '''
            }
        }

        stage('Push Image') {
            when {
                expression { env.REGISTRY?.trim() }
            }
            steps {
                sh '''
                    docker tag ${IMAGE_NAME}:${IMAGE_TAG} ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
                    docker tag ${IMAGE_NAME}:latest ${REGISTRY}/${IMAGE_NAME}:latest
                    docker push ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
                    docker push ${REGISTRY}/${IMAGE_NAME}:latest
                '''
            }
        }

        stage('Deploy') {
            when {
                expression { env.REGISTRY?.trim() }
            }
            steps {
                sh '''
                    docker-compose pull || true
                    docker-compose up -d
                '''
            }
        }
    }

    post {
        always {
            sh 'docker image prune -f'
        }
        success {
            echo 'Build success!'
        }
        failure {
            echo 'Build failed!'
        }
    }
}
