pipeline {
    agent any

    options {
        timestamps()
        buildDiscarder(logRotator(numToKeepStr: '20'))
        timeout(time: 10, unit: 'MINUTES')
    }

    stages {
        stage('Checkout info') {
            steps {
                script {
                    echo "Branch: ${env.BRANCH_NAME ?: 'n/a'}"
                    echo "Commit: ${env.GIT_COMMIT ?: 'n/a'}"
                    echo "Build : #${env.BUILD_NUMBER} on ${env.NODE_NAME}"
                }
                sh 'git log -1 --pretty=fuller || true'
            }
        }

        stage('Repo layout') {
            steps {
                sh '''
                    echo "=== top-level ==="
                    ls -la | head -30
                    echo
                    echo "=== compose files ==="
                    ls -la docker-compose*.yml 2>/dev/null || true
                '''
            }
        }

        stage('Validate compose') {
            steps {
                sh '''
                    if command -v docker >/dev/null 2>&1; then
                        echo "docker version:"
                        docker --version
                        echo
                        echo "=== compose config (syntax only, no apply) ==="
                        docker compose -f docker-compose.yml config --quiet \
                            && echo "OK: docker-compose.yml is valid" \
                            || echo "WARN: compose validation failed (non-fatal for now)"
                    else
                        echo "docker not available in this build environment, skipping"
                    fi
                '''
            }
        }
    }

    post {
        success { echo "SUCCESS — no deployment performed (by design)" }
        failure { echo "FAILED — check logs" }
    }
}
