pipeline { agent any options { timestamps() disableConcurrentBuilds() } stages { stage('Verify source checkout') { steps { echo 'FlashRead source checkout succeeded.' sh 'pwd && git log -1 --oneline' } } stage('Build FlashRead CI image') { steps { script { def ciImage = docker.build( 'fast_reader-ci:latest', '-f Dockerfile.ci .' ) echo "Built CI image: ${ciImage.id}" } } } stage('Inspect build environment') { steps { sh ''' echo "=== Build environment ===" echo for tool in git go node npm wails syft grype docker; do if command -v "$tool" >/dev/null 2>&1; then echo "[FOUND] $tool" "$tool" --version 2>&1 | head -n 1 || true else echo "[MISSING] $tool" fi done ''' } } stage('Test Docker Pipeline') { steps { script { docker.image('alpine:3.20').withRun('', 'sleep 5') { container -> echo "Docker Pipeline started container: ${container.id}" } } } } } post { success { echo 'FlashRead CI environment check completed successfully.' } failure { echo 'FlashRead CI environment check failed.' } } }