如何在Delphi中使用jenkins为项目获取自动构建服务器

简而言之,如何使用jenkins或其他工具设法获得一个自动构建服务器,以使用MSBuild构建多个Delphi的项目?

我目前是公司的实习生。我设法找到了一个解决方案,以迁移和更改旧的SCM软件:PVCS到SVN。但是他们正在使用旧的Shell脚本和Cygwin来构建带有多个选项的编译器,这些选项可编译/发布所有或某些Delphi项目并生成DLL和EXE。首先,我想使用詹金斯(Jenkins)尝试重现相同的机制,但是我不确定这是否是解决此问题的最佳方法。我试图设置一个自由样式的工作和一个多分支管道。第一个可以建立一个项目,但后者不能成功,我不知道是什么原因。

我对持续集成的测试部分不感兴趣,我只想为多个Delphi项目提供一个自动构建。 我不知道该如何处理。也许最好的方法是像詹纳斯(Jenkins)所做的一样多地从事德尔福的项目?但是之后如何控制它们呢? 我已经阅读了有关Maven和Ant的文章,但是我不确定它是否与我有关。

欢迎任何建议

meng0550 回答:如何在Delphi中使用jenkins为项目获取自动构建服务器

您可以创建简单的作业"free-style job""pipelines"。管道功能更强大,但如果您要启动,则更加复杂。

您可以从为每个项目创建作业开始。然后,您可以使用不同的jenkins选项链接项目。当一个作业完成时,另一个作业开始。见下图。

enter image description here

您还可以用来编译现有的plugin for existing RAD Studio for Jenkins。在"free-style job"中使用它。

另一个选择是使用管道,但是您应该对Groovy有所了解。 例如,具有几个步骤的简单管道就是这样:

pipeline {
    agent any
    stages {
        stage('Stage: Show message Hola Mundo') {
            steps {
                echo 'Paso 1. Hola Mundo'
            }
        }
        stage('Download source from GIT') {
            steps {
                echo 'Downloading...'
                git([url: 'https://XXX_repository_xxxx.git/gitProject',branch: 'master',credentialsId: 'a234234a-344e-2344-9440-423444xxxxxx'])
            }
        }
        stage('Executing MSDOS file (BAT)') {
            steps {
                echo '-- Sample Executing BAT file'
                bat '"c:\\Program Files (x86)\\Embarcadero\\Studio\\19.0\\bin\\rsvars.bat"'
            }
        }
        stage('MSBuild a Delphi project') {
            steps {
                println("************ EXECUTING MSBUILD ******************")
                echo '-- Lanzar la ejecución de rsVars ---------'
                bat '"c:\\Program Files (x86)\\Embarcadero\\Studio\\19.0\\bin\\rsvars.bat"'
                echo '-- MSBuils del proyecto TestLauncher -------'
                bat '"c:\\local\\AutomaticTestsProject\\compilar.bat"'                
            }    
        }
        stage('Execute a test project (EXE)') {
            steps {
                bat 'c:\\local\\AutomaticTestsProject\\BIN\\AutomaticTestsProject.exe'
            }
        }
        stage('Send emeil') {
            steps {
                emailext (
                    subject: "Job '${env.JOB_NAME} ${env.BUILD_NUMBER}'",body: """<p>Check console output at <a href="${env.BUILD_URL}">${env.JOB_NAME}</a></p>""",to: "destinatary@hotmail.com",from: "JenkinsMachine@mail.com" )
            }
        }
    }
}
本文链接:https://www.f2er.com/3110722.html

大家都在问