Files
pipeline-test/Jenkinsfile
2026-04-02 22:29:33 +02:00

63 lines
1.8 KiB
Groovy

pipeline {
agent any
environment {
IMAGE_NAME = "helloworldapp"
IMAGE_TAG = "${env.BUILD_NUMBER ?: 'latest'}"
DOCKER_REGISTRY = "192.168.50.221:45000" // replace with your registry e.g. docker.io/yourorg
DOCKER_CREDENTIALS_ID = "dockerhub-credentials" // set this credential in Jenkins
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
dir('HelloWorldApp') {
sh 'dotnet restore'
sh 'dotnet build --configuration Release --no-restore'
}
}
}
stage('Test') {
steps {
sh 'dotnet test HelloWorld.slnx --configuration Release --no-restore --verbosity minimal'
}
}
stage('Docker Build') {
steps {
dir('HelloWorldApp') {
sh "docker build -t ${DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} ."
}
}
}
stage('Docker Push') {
steps {
withCredentials([usernamePassword(credentialsId: DOCKER_CREDENTIALS_ID, usernameVariable: 'REGISTRY_USER', passwordVariable: 'REGISTRY_PASSWORD')]) {
sh 'echo $REGISTRY_PASSWORD | docker login ${DOCKER_REGISTRY} -u $REGISTRY_USER --password-stdin'
sh "docker push ${DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
}
}
}
stage('Deploy') {
steps {
echo "Docker image pushed to ${DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}. Deploy to your Docker host as needed."
}
}
}
post {
always {
cleanWs()
}
}
}