Какой простой способ получить зависимости только из репозитория артефактов Maven и запустить сборку Maven в декларативном синтаксисе конвейера Jenkins? - PullRequest
0 голосов
/ 06 ноября 2018

На этапе сборки моего конвейера я просто пытаюсь пройти аутентификацию в Artifactory и выполнить простое mvn clean install, однако я получаю сообщения об ошибках «Not authorised, ReasonPhrase: Unauthorized», связанных с Artifactory. Я запускаю сборку Maven из изолированного сборочного контейнера, который я раскручиваю через Kubernetes. Я проверил документацию JFrog , но до сих пор не удалось настроить все в моем Jenkinsfile. По сути, я хочу иметь возможность получать зависимости только от моего репозитория Maven Artifactory Repo и запускать свою сборку. Вот что я сейчас пытаюсь, но сборка, кажется, пропускает все подряд, как только она попадает на шаг сборки:

pipeline {
agent {
    kubernetes {
      cloud 'cloud-test'
      label 'label-test'
}

options {
    buildDiscarder(logRotator(numToKeepStr: '10'))
}

environment{
    def ART_CREDENTIALS = credentials('artifactory-connect')
    def ART_USR = "${env.ART_CREDENTIALS_USR}"
    def ART_PSW = "${env.ART_CREDENTIALS_PSW}"
}

stages {
    stage('Run in Build Container') {
        steps {
            container('build-container') {
                script{
                    sh 'echo Running Maven Build...'
                    // Look at how to authorize to Arty here
                    def server = Artifactory.server 'arty-server'
                    rtMaven.resolver server: server, releaseRepo: 'sysdse-maven-local', snapshotRepo: 'snapshots'
                }
                sh 'mvn clean install'
            }
        }
    }
    stage('Run Application') {
        steps {
            container('App-Container') {
                //Run App
            }
        }
    }
    stage('Run Tests'){
        steps {
            container('App-Container'){
                //Run Tests
                }
            }
        }
    }
}

1 Ответ

0 голосов
/ 07 ноября 2018

Мне удалось выполнить то, что я искал, добавив следующее в мой /path/to/.m2/conf/settings.xml в моем сборочном контейнере Docker и затем зафиксировав это:

<server>
  <id>artifactory-repo-id</id>
  <url>https://artifactory.location/</url>
  <username>user@email.com</username>
  <password>secret-http-token</password>
</server>

Итак, мой этап сборки в моем Jenkinsfile выглядит следующим образом:

stage('Run in Build Container') {
    steps {
        container('build-container') {
            script{
            sh 'echo Running Maven Build...'
            sh 'mvn clean install'
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...