58 lines
1.8 KiB
Groovy
58 lines
1.8 KiB
Groovy
|
|
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" }
|
||
|
|
}
|
||
|
|
}
|