Разверните Maven в ведре s3 от jenkins - PullRequest
1 голос
/ 09 мая 2020

Я совершенно не знаком с реализацией CI / CD. Я пытаюсь создать конвейер, который будет упаковывать и развертывать мою банку в ведрах s3.

Обратите внимание: в консоли aws созданный мной пользователь IAM имеет полный доступ к s3, и симулятор политики работал хорошо. Я создал свой профиль s3 в jenkins, и «тестовое соединение» работает хорошо.

Этап «Освободить до aws» не работает из-за следующего. Кто-нибудь может помочь мне здесь, пожалуйста. Невозможно увидеть, что я Я отсутствует.

Downloading from s3.artifacts.snapshot: s3://panda.bucket.net/snapshot/com/panda/panda-app/1.0- 
SNAPSHOT/maven-metadata.xml
[WARNING] s3://panda.bucket.net/snapshot - Connection refused
[WARNING] Could not transfer metadata com.panda:panda-app:1.0-SNAPSHOT/maven-metadata.xml from/to 
s3.artifacts.snapshot (s3://panda.bucket.net/snapshot): Could not connect to repository
[INFO] Logged off - panda.bucket.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

Мой файл Jenkins:

pipeline {
agent any
tools {
    maven 'maven'
    jdk 'jdk1.8'
}
stages {
    stage('SCM') {
                steps {
                    git 'https://username:password@gitlab.com/my-repo/panda-app'
                }
     }
    stage('Build') {
        steps {
            bat 'mvn clean compile'
        }
    }
    stage('Release to aws') {
        steps {
            bat 'mvn deploy'
        }
     }
   }}

Моя конфигурация сборки и распространения в pom:

<properties>
    <java.version>1.8</java.version>
    <artifactrepo.url>panda.bucket.net</artifactrepo.url>
</properties>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
    <extensions>
        <extension>
            <groupId>com.allogy.maven.wagon</groupId>
            <artifactId>maven-s3-wagon</artifactId>
            <version>1.2.0</version>
        </extension>
    </extensions>
</build>
<distributionManagement>
    <repository>
        <id>s3.artifacts.release</id>
        <url>s3://${artifactrepo.url}/release</url>
    </repository>
    <snapshotRepository>
        <id>s3.artifacts.snapshot</id>
        <url>s3://${artifactrepo.url}/snapshot</url>
    </snapshotRepository>
    </distributionManagement>

Настройки. xml

<settings>
<server>
  <id>s3.artifacts.release</id>
  <username>MY_ACCESS_KEY</username>
  <password>MY_SECRET</password>
  <filePermissions>AuthenticatedRead</filePermissions>
</server>
<server>
  <id>s3.artifacts.snapshot</id>
  <username>MY_ACCESS_KEY</username>
  <password>MY_SECRET</password>
  <filePermissions>AuthenticatedRead</filePermissions>
</server>

1 Ответ

0 голосов
/ 09 мая 2020

Вам действительно нужно реализовать развертывание на S3 в maven? Проще сделать это на конвейере Jenkins, если это вариант для вашего случая.

У вас должен быть AWS плагин шагов .

pipeline {
agent any
tools {
    maven 'maven'
    jdk 'jdk1.8'
}
stages {
    stage('SCM') {
                steps {
                    git 'https://username:password@gitlab.com/my-repo/panda-app'
                }
     }
    stage('Build') {
        steps {
            bat 'mvn clean compile' //maybe package goal to leave the artifact ready to be released
        }
    }
    stage('Release to aws') {
        steps {
            withAWS(region:'yourS3Region', credentials:'awscredentialsID'){
                s3Upload(bucket:"yourBucketName", workingDir:'target', includePathPattern:'**/*'); // pick your jar or whatever you need
            }
        }
     }
   }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...