GitLab demo 1:
GitLab demo 1 Job:
docker run --name demo1-${BUILD_NUMBER} --rm -d gitlab/nginx-demo1 sleep 15 CONTAINER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' demo1-${BUILD_NUMBER}) CODE_STATUS=$(curl -sI ${CONTAINER_IP} | grep -c "^HTTP/1.1 200") docker stop demo1-${BUILD_NUMBER} #[[ ${CODE_STATUS} == 1 ]] && { echo "OK"; exit 0; } || { echo "KO";exit 1; } if [ ${CODE_STATUS} -eq 1 ]; then { exit 0; } else { exit 1; } fi
gitlab demo 1 pipeline:
node {
stage("build") {
def job = build job: 'gitlab demo1'
}
stage("execute") {
def job = build job: 'gitlab demo1 job'
}
stage("publish") {
def job = build job: 'gitlab demo1 publish'
}
}
gitlab demo1 publish:
node ("docker-agent") {
stage ("tag") {
sh ('docker tag gitlab/nginx-demo1:latest registry.floss.cat/mate/demo1:latest')
}
stage ("push") {
withCredentials([usernamePassword(credentialsId: 'registry.floss.cat', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
sh('''
docker login --username=${USERNAME} --password=${PASSWORD} registry.floss.cat
docker push registry.floss.cat/mate/demo1:latest
''')
}
}
}