Operations 4 min read

Implementing CI/CD with Jenkins Declarative Pipeline for .NET Core Applications

This article demonstrates how to set up a Jenkins Declarative Pipeline to automate the CI/CD workflow for a .NET Core project, covering stages such as checkout, restore, clean, build, test, publish, and email notifications.

DevOps Cloud Academy
DevOps Cloud Academy
DevOps Cloud Academy
Implementing CI/CD with Jenkins Declarative Pipeline for .NET Core Applications

Jenkins offers several ways to achieve CI/CD, including Blue Ocean, Freestyle projects, and Declarative Pipelines. This guide focuses on automating integration and deployment for a .NET Core application using a Declarative Pipeline.

In the pipeline configuration, select Pipeline script and define environment variables and triggers as shown below:

pipeline{
    agent any

    environment {
        dotnet ='C:\Program Files (x86)\dotnet\'
    }

    triggers {
        pollSCM 'H * * * *'
    }
}

The first CI step checks out the source code from Git:

stages{ stage('Checkout') {    steps {     git credentialsId: 'Give Your Credential ID', url: 'https://github.com/YourAcc/YourRepoName.git/', branch: 'Branch on which you want to set the CI'     }  }

Next, restore the project's NuGet packages:

stage('Restore packages'){
   steps{
      bat "dotnet restore YourProjectPath\Your_Project.csproj"
     }
}

Clean the build output:

stage('Clean'){
  steps{
    bat "dotnet clean YourProjectPath\Your_Project.csproj"
  }
}

Build the project, producing DLLs in bin\Debug\netcoreapp2.x :

stage('Build'){
   steps{
      bat "dotnet build YourProjectPath\Your_Project.csproj --configuration Release"
    }
}

Optionally integrate SonarQube for code quality analysis, then add automated testing stages:

stage('Test: Unit Test'){
   steps {
     bat "dotnet test YourProjectPath\UnitTest_Project.csproj"
     }
  }

 stage('Test: Integration Test'){
    steps {
       bat "dotnet test ProjectPath\IntegrateTest_Project.csproj"
      }
   }

Finally, publish the compiled artifacts and send a notification email:

stage('Publish'){
     steps{       bat "dotnet publish YourProjectPath\Your_Project.csproj "
     }}
post{
  always{
    emailext body: "${currentBuild.currentResult}: Job   ${env.JOB_NAME} build ${env.BUILD_NUMBER}
 More info at: ${env.BUILD_URL}",
    recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']],
    subject: "Jenkins Build ${currentBuild.currentResult}: Job ${env.JOB_NAME}"
    }
  }

The complete pipeline flow is: Checkout → Restore → Clean → Build → Test → Publish.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

ci/cdAutomationJenkins.NET CoreDeclarative Pipeline
DevOps Cloud Academy
Written by

DevOps Cloud Academy

Exploring industry DevOps practices and technical expertise.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.