クローニング
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