erpnext/Jenkinsfile
epistemophiliac 368070e3ba Fix Jenkins compose smoke when docker CLI is missing
Bootstrap static docker binary in the pipeline; Jenkins has docker.sock
mounted but the official image does not ship the docker client.
2026-06-16 18:27:43 -04:00

52 lines
1.4 KiB
Groovy

pipeline {
agent any
options {
timestamps()
disableConcurrentBuilds()
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Production readiness') {
steps {
sh 'chmod +x scripts/ci/*.sh'
sh 'bash scripts/ci/ci-readiness.sh .'
sh 'bash scripts/ci/validate-docker-compose.sh .'
}
}
stage('Compose smoke') {
steps {
sh '''
set -euo pipefail
if ! command -v docker >/dev/null 2>&1; then
echo "Installing static docker CLI (Jenkins image has socket, not binary)..."
mkdir -p .ci-bin
curl -fsSL "https://download.docker.com/linux/static/stable/x86_64/docker-27.4.1.tgz" \
| tar xz --strip-components=1 -C .ci-bin docker/docker
chmod +x .ci-bin/docker
export PATH="$PWD/.ci-bin:$PATH"
fi
mkdir -p dist
sed '/exclude_from_hc:/d' docker-compose.yml > dist/docker-compose.coolify.yml
docker compose -f dist/docker-compose.coolify.yml config -q
VERSION="$(grep -E '^ERPNEXT_VERSION=' example.env | cut -d= -f2)"
docker pull "frappe/erpnext:${VERSION}"
echo "frappe/erpnext:${VERSION} OK"
'''
}
}
}
post {
success {
archiveArtifacts artifacts: 'dist/docker-compose.coolify.yml', fingerprint: true, onlyIfSuccessful: true
}
}
}