Снимок Jfrog CLI Maven и развертывание выпуска

В нашем проекте мы используем maven в качестве инструмента сборки, действия GitHub в качестве агента сборки и Jfrog в качестве артефакта для развертывания файлов jar. У нас есть как моментальные снимки, так и выпускные версии (идентифицируемые с помощью «SNAPSHOT» в теге версии в pom). В настоящее время мы используем плагин развертывания maven для развертывания встроенных артефактов в Jfrog, а сведения о репозитории настраиваются в настройках maven с использованием следующих тегов в профиле maven:

Снимок Jfrog CLI Maven и развертывание выпуска

При запуске maven deploy плагин развертывания создает проект и развертывает его в артефакте и соответствующем репозитории на основе версии артефакта (имеет «SNAPSHOT» или нет). После просмотра нескольких документов и блогов, таких как следующий:

https://jfrog.com/blog/dont-let-maven-deploy-plugin-trip-you

мы подумали, что для этого лучше использовать артефактный плагин jfrog, чтобы мы могли собирать информацию о сборке и все остальное. Поскольку мы используем действия GitHub, я не смог найти артефактный плагин, который используется для действий GitHub (нашел один для Jenkins и несколько других, но не для действий GitHub), я также не хочу добавлять плагин в свой файл pom и настройте там детали репозитория, так как это свяжет детали репозитория в pom. Кроме того, я хотел бы отделить логику развертывания от pom и перенести ее на сервер CI, чтобы эти детали можно было скрыть от разработчиков (плагин развертывания maven делает это в некоторой степени, поскольку вся артефактная конфигурация происходит в файле настроек maven)

Артефактный плагин можно настроить в pom следующим образом:

Снимок Jfrog CLI Maven и развертывание выпуска

со ссылкой на https://www.jfrog.com/confluence/display/JFROG/Maven+Artifactory+Plugin

Затем я обнаружил, что мы можем использовать Jfrog CLI в действиях GitHub для развертывания артефактов, но я не смог найти, как настроить CLI для использования как моментальных снимков, так и выпускных репозиториев, чтобы мне не приходилось вручную решать, куда их загружать с помощью имя репо. Может ли кто-нибудь подсказать мне, как добиться этого в CLI?

Я ссылался на следующие ссылки из GitHub, а также jfrog:

С какой именно проблемой вы столкнулись? Я вижу, что github.com/jfrog/setup-jfrog-cli предлагает параметры конфигурации, которые вы можете установить. Как только это будет сделано, вы можете просто загрузить оба сгенерированных пакета через CLI. Если это еще не все, пожалуйста, включите в свой вопрос свой ошибочный рабочий процесс. Спасибо!

Azeem 09.02.2023 10:46

Спасибо @Azeem, мне удалось понять, как это можно сделать. Я опубликую ответ здесь, чтобы он мог быть полезен для других.

Sput Nick 09.02.2023 13:13
Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
1
2
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, мне наконец удалось выяснить, как это можно сделать с помощью действий github.

В моем файле action.yml я добавил новый шаг, в котором используется действие «jfrog/setup-jfrog-cli» с рынка действий github, ссылка на него выглядит следующим образом. Он показывает вам, как настроить действие.

https://github.com/marketplace/actions/setup-jfrog-cli

Я настроил URL-адрес артефактной платформы, а также имя пользователя и токен доступа в этом действии.

Было создано новое действие, которое будет создавать мой код с использованием цели «jf maven». Прежде чем вы сможете использовать maven с помощью jfrog CLI, его необходимо настроить с помощью команды «jf mvn-config». Именно здесь вы можете указать, какие репозитории выпусков и моментальных снимков вы хотите использовать. Ниже приведен фрагмент кода, который я использовал для того же. Обратите внимание, что это шаги в задании конвейера действий github, а не завершенный файл сборки yml.

- name: Setup jfrog
        uses: jfrog/setup-jfrog-cli@v3
        with:
          version: latest
        env:
          JF_URL: "https://artifactory.com"  #be mindful not to add the path /artifactory here as it will cause authentication issue
          JF_USER: ${{ secrets.ARTIFACT_USER_ID }}
          JF_ACCESS_TOKEN: ${{ secrets.ARTIFACT_TOKEN }} # You have an option of giving password as well

- name: maven build
        run: |
              jf mvn-config --repo-deploy-releases=${ARTIFACTORY_RELEASE} --repo-deploy-snapshots=${ARTIFACTORY_SNAPSHOT} # mention the names of your release and snapshot repos within the jfrog artifacory
              jf mvn deploy
              jf rt bp # (optional, deploy build info, use --dry-run flag to see the build info in console without committing it)

Есть много других необязательных параметров, которые вы можете использовать для обогащения и настройки сборки, их можно найти по следующим ссылкам.

https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-RunningMavenBuildshttps://www.jfrog.com/confluence/display/JFROG/QuickStart+Guide%3A+Maven+and+Gradlehttps://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-BuildIntegration

Другие вопросы по теме