クローニング

Updated 2 years ago by Admin

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


--depthフラグ

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

1  kind: pipeline
2 type: digitalocean
3 name: default
4
5 token:
6 from_secret: token
7
8 clone:
9 depth: 50
10
11 steps:
12 - name: build
13 commands:
14 - go build
15 - go test
The --tags flag

--tagsフラグ

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

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

--recursiveフラグ

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

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

カスタムロジック

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

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


How did we do?