在Jenkins中实现CI / CD的方法有很多,例如Blue Ocean,Free Style项目和Declarative Pipeline。在本文中,我将解释如何使用带有声明式管道的Jenkins自动化集成和部署过程。我试图用.net核心应用程序明确解释所有步骤。
我们不会深入研究Jenkins Pipeline,因为它不在本篇文章的讨论范围之内,但是您可以在历史文章找到有关Pipeline的所有详细信息。
我希望您现在对Jenkins Pipeline有所了解,并希望您已经完成了Jenkins的基本设置。
在配置管道阶段,选择管道定义作为Pipeline script,在Pipeline Scripts下,设置环境变量和脚本触发器。
pipeline{
agent any
environment {
dotnet ='C:\\Program Files (x86)\\dotnet\\'
}
triggers {
pollSCM 'H * * * *'
}
}
CI的第一步是从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' } }
恢复包
下一步是还原应用程序的软件包。让我们运行restore命令,如果Windows代理程序中没有可用的软件包,它将还原该软件包:
stage('Restore packages'){
steps{
bat "dotnet restore YourProjectPath\\Your_Project.csproj"
}
}
clean
stage('Clean'){
steps{
bat "dotnet clean YourProjectPath\\Your_Project.csproj"
}
}
build,它将dll和其他内置文件放在bin\Debug\netcoreapp2.x下
stage('Build'){
steps{
bat "dotnet build YourProjectPath\\Your_Project.csproj --configuration Release"
}
}
在这一阶段,我们可以添加SonarQube来自动化代码质量性能测试。
自动化测试
下一步将在您的项目上构建单元测试和集成测试。那将建立解决方案的测试案例。
stage('Test: Unit Test'){
steps {
bat "dotnet test YourProjectPath\\UnitTest_Project.csproj"
}
}
stage('Test: Integration Test'){
steps {
bat "dotnet test ProjectPath\\IntegrateTest_Project.csproj"
}
}
发布
让我们添加publish命令以从Jenkins发布我们的软件包。
stage('Publish'){ steps{ bat "dotnet publish YourProjectPath\\Your_Project.csproj " }}
我们可以将发布注释发送到相关的电子邮件地址,这是发布项目的最有效方法。您将收到一封有关您的部署的电子邮件。
post{
always{
emailext body: "${currentBuild.currentResult}: Job ${env.JOB_NAME} build ${env.BUILD_NUMBER}\n More info at: ${env.BUILD_URL}",
recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']],
subject: "Jenkins Build ${currentBuild.currentResult}: Job ${env.JOB_NAME}"
}
}
Checkout -> Restore -> Clean -> Build -> Test-> Publish