Artifactory へのデプロイ
クラウド
This document is applicable to CircleCI クラウド
Server v4.x
This document is applicable to CircleCI Server v4.x
Server v3.x
This document is applicable to CircleCI Server v3.x
CircleCI では Artifactory への直接アップロードがサポートされています。
デプロイ
Artifactory の REST API を活用する方法については、Artifactory からわかりやすいドキュメントが提供されています。
ここでは、いくつかのサンプル プロジェクトを取り上げながら、CircleCI と Artifactory を組み合わせて最大限に活用する方法について説明します。
このサンプルを実行する前に、リポジトリが作成されていることを確認してください。 リポジトリが作成されていないと、CircleCI が依存要素を保存する場所がありません。
Artifactory プラグイン
Maven や Gradle といった人気の高いツールでは Artifactory プラグインが提供されており、それぞれのデプロイ コマンドを使用して Artifactory にデプロイできます。
JFrog CLI
.circleci/config.yml ファイル全体は、以下のようになります。
- run:
name: Install jFrog CLI
command: curl -fL https://getcli.jfrog.io | sh
次に、自分の資格情報を安全に使用するために JFrog を設定する必要があります。 自分の $ARTIFACTORY_URL
を自分の $ARTIFACTORY_USER
および $ARTIFACTORY_APIKEY
と共に使用するようにクライアントを設定します。 これらは、Project Settings->Environment Variables
に入力できます。 これらの設定を使用するようにCLIを設定します。
- run: ./jfrog config add <named_server_config> --artifactory-url $ARTIFACTORY_URL --user $ARTIFACTORY_USER --apikey $ARTIFACTORY_APIKEY --interactive=false
JAR ファイルをアップロードする場合には、以下の例を使用します。
- run: ./jfrog rt u "multi*/*.jar" <artifactory_repo_name> --build-name=<name_you_give_to_build> --build-number=$CIRCLE_BUILD_NUM --flat=false
WAR ファイルをアップロードする場合には、以下の例を使用します。
- run: ./jfrog rt u "multi*/*.war" <artifactory_repo_name> --build-name=<name_you_give_to_build> --build-number=$CIRCLE_BUILD_NUM --flat=false
.circleci/config.yml ファイル全体は、以下のようになります。
version: 2.1
jobs:
upload-artifact:
docker:
- image: cimg/openjdk:19.0.1
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
working_directory: ~/repo
steps:
- checkout
- run: mvn dependency:go-offline
- run:
name: maven build
command: |
mvn clean install
- run:
name: Install JFrog CLI
command: curl -fL https://getcli.jfrog.io | sh
- run:
name: Push to Artifactory
command: |
./jfrog config add <named_server_config> --artifactory-url $ARTIFACTORY_URL --user $ARTIFACTORY_USER --apikey $ARTIFACTORY_APIKEY --interactive=false
./jfrog rt u <path/to/artifact> <artifactory_repo_name> --build-name=<name_you_give_to_build> --build-number=$CIRCLE_BUILD_NUM
./jfrog rt bce <name_you_give_to_build> $CIRCLE_BUILD_NUM # collects all environment variables on the agent
./jfrog rt bp <name_you_give_to_build> $CIRCLE_BUILD_NUM # attaches ^^ to the build in artifactory