クローニング

Updated 2 years ago by Admin

Droneは、パイプラインステップを実行する前に、リポジトリのクローンを自動的に作成します。特別な設定は必要ありません。ただし、場合によっては、デフォルトのクローン動作をカスタマイズ、オーバーライド、または無効にする必要があります。


--depthフラグ

デフォルトのクローン構成では、 --depthフラグが使用されます。 cloneブロックをdepth属性を追加することで、クローンの深さを強制できます。

1  kind: pipeline
2 type: exec
3 name: default
4
5 clone:
6 depth: 50
7
8 steps:
9 - name: build
10 commands:
11 - go build
12 - go test


--tagsフラグ

デフォルトのクローン構成では、 --tagsフラグは使用されません。タグをフェッチする場合は、パイプラインのステップとしてこれを処理する必要があります。例えば:

1  kind: pipeline
2 type: exec
3 name: default
4
5 steps:
6 - name: fetch
7 commands:
8 - git fetch --tags
9
10 - name: build
11 commands:
12 - go build
13 - go test

--recursiveフラグ

デフォルトのクローン動作は--recursiveフラグを使用せず、サブモジュールをフェッチしません。サブモジュールをフェッチする場合は、パイプラインのステップとしてこれを処理する必要があります。例えば:

1  kind: pipeline
2 type: exec
3 name: default
4
5 steps:
6 - name: submodules
7 commands:
8 - git submodule update --recursive --remote
9
10 - name: build
11 commands:
12 - go build
13 - go test

カスタムロジック

必要に応じて、デフォルトのクローン動作を無効にし、カスタムクローンロジックを実装できます。次の例では、パイプラインステップとしてカスタムクローンコマンドを実装します。

1  kind: pipeline
2 type: exec
3 name: default
4
5 clone:
6 disable: true
7
8 steps:
9 - name: clone
10 commands:
11 - git clone https://github.com/octocat/hello-world.git .
12 - git checkout $DRONE_COMMIT
13
14 - name: build
15 commands:
16 - go build
17 - go test


How did we do?