クローニング
Droneは、パイプラインステップを実行する前に、リポジトリのクローンを自動的に作成します。特別な設定は必要ありません。ただし、場合によっては、デフォルトのクローン動作をカスタマイズ、オーバーライド、または無効にする必要があります。
--depthフラグ
デフォルトのクローン構成では、 --depth
フラグが使用されます。 clone
ブロックにdepth
属性を追加することで、クローンの深さを強制できます。
1 kind: pipeline
2 type: macstadium
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: macstadium
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: macstadium
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: macstadium
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