Выпуск Jenkins Pipeline для Perforce - PullRequest
       27

Выпуск Jenkins Pipeline для Perforce

0 голосов
/ 14 октября 2018

Я пытаюсь выпустить новую версию проекта Maven для исполнения.После долгих исследований (поправьте меня, если я ошибаюсь) я не нашел ни одного полезного примера, как это сделать, поэтому я пытаюсь сделать это вручную - это означает, что я меняю версию файла pom.xml и пытаюсьотправить его, используя p4publish.

Это соответствующие этапы:

        stage('change pom version Release')
                    {
                        steps
                                {
                                    withCredentials([usernamePassword(credentialsId: REPOSITORY_CREDENTIALS_ID, passwordVariable: 'artifactory_password', usernameVariable: 'artifactory_user')]){
                                        script {
                                            pom = readMavenPom file: 'main_project/pom.xml'
                                            pom.version = "${RELEASE_DATE}"
                                            writeMavenPom model: pom

                                            def inside_project_pom = readMavenPom file: main_project/inside_project/pom.xml'
                                            inside_project_pom.parent.version = "${RELEASE_DATE}"
                                            writeMavenPom model: inside_project_pom
                                        }
                                    }
                                }
                    }

            stage('publish')
                    {
                        steps
                                {
                                    p4publish(
                                            credential: 'PERFORCE_CREDENTIALS_ID',
                                            publish: [$class: 'SubmitImpl', delete: false, description: 'Submitted by Jenkins. Build: ${BUILD_TAG}', onlyOnSuccess: false, reopen: false],
                                            workspace: [
                                                    $class: 'ManualWorkspaceImpl',
                                                    charset: 'none',
                                                    name: 'jenkins-${JOB_NAME}-submit',
                                                    pinHost: false,
                                                    spec: [
                                                            allwrite: true,
                                                            clobber: false,
                                                            compress: false,
                                                            line: 'LOCAL',
                                                            locked: false,
                                                            modtime: false,
                                                            rmdir: false,
                                                            streamName: '//PROJECT_LOCATION_ON_PERFORCE',
                                                            view: '',
                                                            serverID: '',
                                                            type: 'WRITABLE'
                                                    ]
                                            ])
                                }
                    }

Моя иерархия проекта:

   PROJECT_LOCATION_ON_PERFORCE:
              main_project:
                     inside_project:
                                 ....
                                 pom.xml
                     ...
                     pom.xml
              ....
              pom.xml

Я хочу изменить первые 2 часа наэтот список, но после запуска этого на Jenkins только внешняя помпа получает новую версию (хотя я не изменяю его пом).

Что я делаю не так?Можете ли вы помочь мне с этим, пожалуйста?Спасибо!

1 Ответ

0 голосов
/ 14 октября 2018

Ну, я не знаю о Perforce, но вы могли бы просто использовать цель плагина *1001* Maven вместо того, чтобы изменять все файлы pom вручную.Он имеет более глубокое понимание структуры проекта и, следовательно, может избавить вас от некоторых проблем.

sh "mvn versions:set -DnewVersion=${RELEASE_DATE}"

должен сделать свое дело.

...