Selective Checkout for Azure DevOps
This is a fork of Sebastian Mechelke's Selective Checkout with the following improvements:
- Added support for
fetchDepth: 0
to allow full history cloning
- Updated required Node.js version
- Added option to enable/disable tree filter during clone
All credit for the original implementation goes to Sebastian Mechelke.
This extension contains a pipeline task that allows for slim git checkouts.
You can select what folders you want to download.
This keeps your traffic low and your build times short.
Requirements
Git v2.37.1+ needs to be installed on the build agent.
Usage
steps:
- checkout: none
- task: SelectiveCheckoutReborn@0
inputs:
pathsToCheckout: 'path/to/download'
For multiple paths:
steps:
- checkout: none
- task: SelectiveCheckoutReborn@0
inputs:
pathsToCheckout: |
path/to/download/1/
path/to/download/2/
If a shallow clone is not wanted:
steps:
- checkout: none
- task: SelectiveCheckoutReborn@0
inputs:
pathsToCheckout: 'path/to/download/*'
fetchDepth: 0 # The same semantics as the normal checkout task.
If you want to use the tree filter during clone (previous default behavior):
steps:
- checkout: none
- task: SelectiveCheckoutReborn@0
inputs:
pathsToCheckout: 'path/to/download/*'
useTreeFilter: true # Enables the --filter=tree:0 option during clone
Limitations
- Only Github and Azure Devops repositories are supported.
- No multiple repository support.
- No Team Foundation Version Control (TFVS) support.
- No advanced further checkout parameters, like fetchTags or clean
If you need more features, feel free to contact me.