delphi - 如何使用 jenkins 为 Delphi 中的项目获得自动化构建服务器

标签 delphi jenkins msbuild

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

我目前是一家公司的实习生。我设法找到了一个解决方案来迁移和更改旧的 SCM 软件:PVCS 到 SVN。但他们使用旧的 shell 脚本和 Cygwin 来构建,并带有多个选项来编译/发布所有或某些 Delphi 项目并生成 DLL 和 EXE。我想首先使用 Jenkins 尝试重现相同的机制,但我不确定这是处理这个问题的最佳方法。我尝试过设置自由式作业和多分支管道。第一个可以构建一个项目,但后者不成功,我不知道groovy...

我对持续集成的测试部分不感兴趣,我只想为几个 Delphi 项目进行自动构建。 我不知道如何处理这个问题。也许最好的方法是像有delphi的项目一样多地做jenkins的工作?但事后如何控制呢? 我已经阅读过有关 Maven 和 Ant 的内容,但我不确定它是否与我的情况相关。

欢迎任何建议

最佳答案

您可以创建简单的作业“自由式作业”“管道”。管道更强大,但如果您刚开始的话会更复杂。

您可以首先为每个项目创建一个作业。然后您可以使用不同的 Jenkins 选项链接项目。当一个作业完成时,另一个作业开始。请参阅下图。

enter image description here

您还可以用来编译现有的 plugin for existing RAD Studio for Jenkins 。在“自由式工作”中使用它。

另一个选择是使用管道,但您应该了解一些有关 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" )
            }
        }
    }
}

关于delphi - 如何使用 jenkins 为 Delphi 中的项目获得自动化构建服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58835614/

相关文章:

msbuild - 我的 msbuild 参数可能做错了什么?

delphi - 我可以使用 xsd :complexContent with the Delphi XML Binding Wizard?

jenkins - 如何限制在构建失败时可以在 jenkins 中接收电子邮件的用户列表?

Jenkins:管道步骤中的 "Execute system groovy script"(SCM 已提交)

bash - (使用 SSH 运行命令时出错)命令行 : line 0: Bad configuration option

msbuild - 如何通过命令行将链接器选项传递给msbuild?

msbuild - 从 MSBuild Bootstrap 启动 x86 或 x64 MSI

delphi - 将系统声音(立体声混音)录制到文件中

delphi - 如何生成CRC-6的CRC表?

delphi - WSDL导入器,用于带有负数的枚举类型