pipeline {
  agent any

  options {
    timestamps()
    disableConcurrentBuilds()
  }

  stages {
    stage('确认提交版本') {
      steps {
        sh 'echo "Jenkins 已拉取 release/test 分支代码"'
        sh 'git log -1 --oneline'
      }
    }

    stage('构建并部署测试前端') {
      steps {
        sh '''
          set -eu
          docker compose -f docker-compose.test.yml build --pull=false
          docker compose -f docker-compose.test.yml up -d --remove-orphans
        '''
      }
    }

    stage('部署检查') {
      steps {
        sh '''
          set -eu
          docker compose -f docker-compose.test.yml ps
          docker compose -f docker-compose.test.yml exec -T admin-web wget -qO- http://127.0.0.1/healthz
        '''
      }
    }
  }

  post {
    failure {
      sh 'docker compose -f docker-compose.test.yml logs --tail=100 || true'
    }
  }
}
