pipeline { agent { label 'swarm' } options { buildDiscarder(logRotator(numToKeepStr: '20')) timeout(time: 30, unit: 'MINUTES') } stages { stage('Validate Workspace') { steps { sh 'pwd' sh 'ls -la' } } stage('Swarm Agent Check') { steps { sh 'hostname' sh 'id' sh 'docker version --format "{{.Server.Version}}"' sh 'docker service ls --format "{{.Name}} {{.Replicas}}"' } } stage('Service Reachability') { steps { sh 'curl -fsS https://gitea.derryle.com/user/login > /dev/null' sh 'code=$(curl -sS -o /dev/null -w "%{http_code}" https://jenkins.derryle.com/login); echo "$code"; echo "$code" | grep -Eq "^(200|401|403)$"' sh 'curl -fsS https://portainer.derryle.com/ > /dev/null' } } } }