Flow は、Java プロジェクトのテスト、ビルド、ビルドアーティファクトのアップロードのためのエンドツーエンドのソリューションを提供します。ビジュアルエディタで [Java · Test, Build] テンプレートを使用することで、テスト、コードコンパイル、依存関係管理、アーティファクトのアップロードを自動化する CI/CD パイプラインを迅速にセットアップできます。
ステップ 1: テストとビルドのパイプラインの作成
-
Alibaba Cloud DevOps コンソールにログインし、右上隅にある [パイプラインの作成] をクリックします。
-
[パイプラインテンプレートの選択] ダイアログボックスで、[Java · Test, Build] を選択し、[作成] をクリックします。
ステップ 2: パイプラインソースの設定
-
新しいパイプラインの [プロセス設定] タブで、[パイプラインソース] ステージの [パイプラインソースの追加] をクリックします。
-
コードソースを追加します。この例では、Alibaba Cloud DevOps が提供する
Java用の事前設定された [サンプルコードソース] を使用します。[追加] をクリックします。
ステップ 3: テストとビルドのジョブの設定
[Java · Test, Build] テンプレートには、[Java コードスキャン]、[Maven 単体テスト]、[Java ビルドアップロード] の 3 つの事前定義されたジョブが含まれています。これらの設定は類似しています。このセクションでは、[Java ビルドアップロード] ジョブを例として説明します。[プロセス設定] タブで、[ビルド] ステージの [Java ビルドアップロード] ジョブをクリックして、設定パネルを開きます。
Java ビルドのアップロード
-
基本パラメーターを設定します。
パラメーター
説明
ジョブ名
ジョブのカスタム名を入力するか、デフォルトの名前を使用します。
ビルドクラスター
サポートされているビルドクラスターは次のとおりです:
ビルド環境
サポートされているビルド環境は次のとおりです:
-
コンテナ環境の指定 (Alibaba Cloud DevOps デフォルトビルドクラスターの場合):Flow はビルドマシン上で指定されたコンテナを起動し、その単一コンテナ環境でビルドを実行します。Alibaba Cloud DevOps は公式イメージのリストを提供しています。実行環境として独自のイメージを指定することもできます。
-
デフォルト VM 環境 (プライベートビルドクラスターでのみサポート):[ビルドノードの指定] を選択する必要があります。Flow は環境をインストールし、ビルドマシン上で直接ジョブを実行します。ジョブを高速化するために、事前にビルドマシンに必要な SDK と環境をインストールすることを推奨します。
説明ジョブの実行中、ビルド環境とジョブ実行スクリプトを完全に制御できます。
パイプラインソースのダウンロード
有効にすると、設定されたコードソースが対応する作業ディレクトリにダウンロードされます。利用可能なオプションは次のとおりです:
-
すべてのパイプラインソースをダウンロード
-
パイプラインソースをダウンロードしない
-
選択したパイプラインソースをダウンロード
-
-
[タスクステップ] を設定します。
コンテナ環境と VM 環境
-
Java のインストール
必要な [JDK バージョン] と [Maven バージョン] を選択します。たとえば、[ステップ名] を [Java のインストール]、[JDK バージョン] を [JDK 1.8]、[Maven バージョン] を [Maven 3.5.2] に設定します。
-
コマンドの実行
カスタムビルドコマンドを入力します。複数のバージョンの Maven がサポートされています。これらのコマンドは、コードリポジトリのルートディレクトリで実行されます。
たとえば、ビルドコマンド
mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skipを入力します。コマンドフィールドの下で、[シェルの指定] を選択し、[環境変数] セクションでカスタム環境変数を追加できます。 -
アーティファクトのアップロード
Packages へのアップロード
パラメーター:
パラメーター
説明
サービス接続の追加
[サービス接続の追加] をクリックし、プロンプトに従って Flow から Packages へのサービス接続を作成します。詳細については、「サービス接続の管理」をご参照ください。
リポジトリ
サービス接続を追加した後、Packages の [汎用アーティファクト] リポジトリをターゲットリポジトリとして選択できます。
説明[汎用アーティファクト] リポジトリの詳細については、「汎用アーティファクトの管理」をご参照ください。
アーティファクト名
異なるビルドのアーティファクトを区別し、デプロイメントコンポーネントによって使用されます。動的変数の使用を推奨します。デフォルトは
Artifacts_${PIPELINE_ID}です。target1のようなカスタム名を指定できます。アーティファクトバージョン
バージョンはアーティファクトを一意に識別します。同じアーティファクトの重複したバージョンはプッシュできません。
${DATETIME}のような動的変数の使用を推奨します。パッケージングパス
プロジェクトのルートディレクトリからの相対パスを指定します。例:
target/。複数のパスを指定できます。アーティファクトにパッケージングパスを含める
このオプションを選択した場合、生成されたアーカイブには完全なパッケージングパスが含まれます。それ以外の場合は、ファイルのみが含まれます。[パッケージングパス] に複数のパスを指定した場合、このオプションは自動的に有効になります
。
-
Java コードスキャンパラメーター
|
パラメーター |
説明 |
|
増分スキャンモードを有効にする |
このオプションを有効にしない場合、フルコードスキャンが実行されます。 |
|
カスタムルールディレクトリを使用する |
有効にすると、Flow はコードリポジトリ内の |
|
ルールセット |
[カスタムルールディレクトリを使用する] が有効でない場合、デフォルトのルールセットが使用されます。 |
|
サブディレクトリ |
スキャン対象のコードを含むディレクトリ。指定しない場合、スキャンはコードリポジトリのルートで実行されます。 |
|
サブディレクトリを除外 |
スキャンから除外するディレクトリまたはファイル。フォーマットは |
|
レッドライン情報 |
以下の 4 つのメトリックに基づいて、コードスキャンの成功基準を定義します:
|
Maven 単体テストパラメーター
|
パラメーター |
説明 |
|
コマンドの実行 |
カスタム Maven 単体テストコマンドを指定します。 |
|
テストレポートパス |
テストレポートファイルへのパス。これはファイルを指す必要があります。このファイルを含むディレクトリ全体がアップロードされます。例: |
|
テストツール |
|
ステップ 4: パイプラインの実行と結果の表示
-
設定が完了したら、右上隅の [保存して実行] をクリックします。ダイアログボックスで [実行] をクリックしてパイプラインを開始します。ビジュアルエディタには各ステージの実行進捗が表示されます:[パイプラインソース] ステージが最初にコードリポジトリをプルし、次に [テスト] ステージで [Java コードスキャン] と [Maven 単体テスト] ジョブが並行して実行され、最後に [ビルド] ステージの [Java ビルドアップロード] ジョブが開始されます。
-
パイプラインの実行が完了すると、各ジョブはログを生成します。ジョブのノードで [ログ] をクリックして詳細を表示します。以下は、Java ビルドアップロードジョブのログの例です:
[executionStep begins at 2025-03-25 13:30:45] ###################################################### # name : ArtifactUpload # version : v1.3.91 # description : artifact upload # help url : https://atomgit.com/flow-step/ArtifactUpload.git # build id : e819a91f-8d7c-4e2d-9bfa-658f7fd89f64 ###################################################### 2025-03-25 13:30:45 [INFO] Start to pack artifact 2025-03-25 13:30:45 [INFO] PackInputs, {"projectDir":"/root/workspace/__flow_work/__flow_builds/f8f02d6c-a8fb-41eb-a9a2-e8284ed5240c/workspace/spring-boot_cmBM","sourcePath": ["target"],"filePath":"target","gitIgnore":"false","includePathInArtifact":"false","artifactFullName":"/root/workspace/__flow_work/__flow_builds/f8f02d6c-a8fb-41eb-a9a2-e8284ed5240c/workspace/packages/Artifacts_4032193.tgz"} 2025-03-25 13:30:45 [INFO] Pack single file without file path 2025-03-25 13:30:46 [INFO] use oss endpoint:xxx.aliyuncs.com It's recommended to set 'refreshSTSToken' and 'refreshSTSTokenInterval' to refresh stsToken、accessKeyId、accessKeySecret automatically when sts token has expired 2025-03-25 13:30:46 [INFO] Artifact download URL is: http://xxx oss-cn-beijing-internal.aliyuncs.com/xxx/Artifacts_4032193.tgz 2025-03-25 13:30:46 [INFO] run step successfully!