steps.checkout definition
Użyj checkout
, aby skonfigurować sposób sprawdzania kodu źródłowego potoku.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
fetchFilter: string # Filter Git history.
fetchTags: string # Set to 'true' to sync tags when fetching the repo, or 'false' to not sync tags. See remarks for the default behavior.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
sparseCheckoutDirectories: string # Directories for sparse checkout in cone mode and prioritized over sparseCheckoutPatterns if both properties are provided.
sparseCheckoutPatterns: string # Patterns for sparse checkout in non-cone mode that are ignored if sparseCheckoutDirectories is provided.
workspaceRepo: true | false # When true, use the repository root directory as the default working directory for the pipeline. The default is false.
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
fetchTags: string # Set to 'true' to sync tags when fetching the repo, or 'false' to not sync tags. See remarks for the default behavior.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
Definicje odwołujące się do tej definicji: kroki
Właściwości
checkout
ciąg. Wymagane jako pierwsza właściwość.
Konfiguruje wyewidencjonowania dla określonego repozytorium. Określ self
, none
, nazwę repozytorium lub zasób repozytorium . Aby uzyskać więcej informacji, zobacz Zapoznaj się z wieloma repozytoriami w potoku.
Nuta
Jeśli żaden krok checkout
nie istnieje, domyślnie self
dla jobs.job.step.checkout
i none
dla jobs.deployment.steps.checkout
.
clean
ciąg.
Jeśli wartość true, uruchom narzędzie git clean -ffdx, a następnie polecenie git reset --hard HEAD przed pobraniem. true | fałszywy.
fetchDepth
ciąg.
głębokość wykresu Usługi Git do pobrania.
fetchFilter
ciąg.
Użyj fetchFilter
, aby filtrować historię usługi Git w celu częściowego klonowania. Ustawienie fetchFilter
obsługuje pobieranie bez drzewa i bezbłędne. W przypadku pobierania bez drzewa określ fetchFilter: tree:0
i określ pobieranie bez obiektów blob, określ fetchFilter: blob:none
. Wartość domyślna to brak filtrowania.
fetchTags
ciąg.
ustaw wartość "true", aby zsynchronizować tagi podczas pobierania repozytorium lub "false", aby nie synchronizować tagów. Zobacz uwagi dotyczące zachowania domyślnego.
lfs
ciąg.
ustaw wartość "true", aby pobrać pliki Git-LFS. Domyślnie nie należy ich pobierać.
persistCredentials
ciąg.
ustaw wartość "true", aby pozostawić token OAuth w konfiguracji usługi Git po początkowym pobraniu. Wartością domyślną jest to, że nie należy go pozostawić.
submodules
ciąg.
ustaw wartość "true" dla pojedynczego poziomu modułów podrzędnych lub "rekursywnego", aby pobrać podmoduły podrzędne. Domyślnie nie należy pobierać modułów podrzędnych.
path
ciąg.
Gdzie umieścić repozytorium. Katalog główny to $(Pipeline.Workspace). Domyślnie ten folder musi znajdować się w strukturze katalogów roboczych agenta. Aby ustawić ścieżkę poza katalogiem roboczym agenta, ustaw zmienną potoku o nazwie AZP_AGENT_ALLOW_WORK_DIRECTORY_REPOSITORIES
na true i użyj prefiksu ../
na początku ścieżki wyewidencjonowania. Obsługiwane w wersji 3.230.0 lub nowszej.
sparseCheckoutDirectories
ciąg.
Określ katalog, aby umożliwić wyewidencjonowanie rozrzedzania w trybie stożka przy użyciu dopasowywania katalogów. Oddzielaj wiele katalogów przy użyciu spacji. Obsługiwane w wersji 3.253.0/4.253.0 lub nowszej z usługą Git 2.25 lub nowszą.
- checkout: repo
sparseCheckoutDirectories: src
Jeśli ustawiono zarówno sparseCheckoutDirectories
, jak i sparseCheckoutPatterns
, sparseCheckoutDirectories
jest używane, a ustawienie dla sparseCheckoutPatterns
jest ignorowane.
Aby uzyskać więcej informacji na temat rozrzednia wyewidencjonowania, zobacz Bring your monorepo down to size with sparse-checkout.
sparseCheckoutPatterns
ciąg.
Określ wzorzec, aby włączyć wyewidencjonowanie rozrzedzania w trybie innych niż stożek przy użyciu dopasowywania wzorca. Oddzielaj wiele wzorców przy użyciu spacji. Obsługiwane w wersji 3.253.0/4.253.0 lub nowszej z usługą Git 2.25 lub nowszą.
- checkout: repo
sparseCheckoutPatterns: /* !/img
Jeśli ustawiono zarówno sparseCheckoutDirectories
, jak i sparseCheckoutPatterns
, sparseCheckoutDirectories
jest używane, a ustawienie dla sparseCheckoutPatterns
jest ignorowane.
Aby uzyskać więcej informacji na temat rozrzednia wyewidencjonowania, zobacz Bring your monorepo down to size with sparse-checkout.
workspaceRepo
ciąg.
Jeśli wartość true, użyj katalogu głównego repozytorium jako domyślnego katalogu roboczego potoku. Wartość domyślna to false.
condition
ciąg.
Oceń to wyrażenie warunku, aby określić, czy należy uruchomić to zadanie.
continueOnError
wartość logiczna.
kontynuować działanie nawet w przypadku awarii?
displayName
ciąg.
czytelną dla człowieka nazwę zadania.
target
docelowy.
środowisko, w którym ma zostać uruchomione to zadanie.
enabled
wartość logiczna.
uruchomić to zadanie, gdy zadanie zostanie uruchomione?
env
słownik ciągów.
Zmienne do mapowania na środowisko procesu.
name
ciąg.
identyfikator kroku. Dopuszczalne wartości: [-_A-Za-z0-9]*.
timeoutInMinutes
ciąg.
Czas oczekiwania na ukończenie tego zadania, zanim serwer go zabije.
Nuta
Potoki można skonfigurować z limitem czasu na poziomie zadania. Jeśli interwał limitu czasu na poziomie zadania upłynie przed ukończeniem kroku, zadanie uruchomione (w tym krok) zostanie zakończone, nawet jeśli krok jest skonfigurowany z dłuższym interwałem timeoutInMinutes
. Aby uzyskać więcej informacji, zobacz Limity czasu.
retryCountOnTaskFailure
ciąg.
liczba ponownych prób w przypadku niepowodzenia zadania.
Uwagi
- Płytkie pobieranie
- Clean, właściwości
- Tagi synchronizacji
- Płytkie pobieranie
- Clean, właściwości
Płytkie pobieranie
Nuta
W niektórych organizacjach nowe potoki utworzone po września 2022 r. aktualizacja przebiegu usługi Azure DevOps 209 mają Płytkie pobieranie włączone domyślnie i skonfigurowane z głębokością 1. Wcześniej ustawieniem domyślnym nie było płytkie pobieranie.
Aby sprawdzić potok, wyświetl ustawienie Płytkie pobieranie w interfejsie użytkownika ustawień potoku .
Aby wyłączyć płytkie pobieranie, możesz wykonać jedną z następujących dwóch opcji.
- Wyłącz opcję Płytkie pobieranie w interfejsie użytkownika ustawień potoku .
- Jawnie ustaw
fetchDepth: 0
w krokucheckout
.
Aby skonfigurować głębokość pobierania dla potoku, możesz ustawić właściwość fetchDepth
w kroku checkout
lub skonfigurować ustawienie Płytkie pobieranie w interfejsie użytkownika ustawień potoku .
Nuta
Jeśli jawnie ustawisz fetchDepth
w kroku checkout
, to ustawienie ma priorytet nad ustawieniem skonfigurowanym w interfejsie użytkownika ustawień potoku. Ustawienie fetchDepth: 0
pobiera całą historię i zastępuje ustawienie Płytkie pobieranie.
Właściwość Clean
Jeśli właściwość clean
nie jest ustawiona, jej wartość domyślna jest skonfigurowana przez ustawienie czystego w ustawieniach interfejsu użytkownika dla potoków YAML, które jest domyślnie ustawione na wartość true. Oprócz opcji czyszczenia dostępnej przy użyciu checkout
można również skonfigurować czyszczenie w obszarze roboczym. Aby uzyskać więcej informacji na temat obszarów roboczych i opcji czyszczenia, zobacz temat obszaru roboczego w temacie Jobs.
Synchronizowanie tagów
Krok wyewidencjonowania używa opcji --tags
podczas pobierania zawartości repozytorium Git. Powoduje to pobranie wszystkich tagów przez serwer oraz wszystkich obiektów wskazywanych przez te tagi. Zwiększa to czas uruchamiania zadania w potoku, szczególnie jeśli masz duże repozytorium z wieloma tagami. Ponadto krok wyewidencjonowania synchronizuje tagi nawet po włączeniu płytkiej opcji pobierania, co może oznaczać pokonanie jego celu. Aby zmniejszyć ilość danych pobranych lub ściągniętych z repozytorium Git, firma Microsoft dodała nową opcję wyewidencjonowania w celu kontrolowania zachowania synchronizacji tagów. Ta opcja jest dostępna zarówno w potokach klasycznych, jak i YAML.
Czy synchronizować tagi podczas wyewidencjonowania repozytorium można skonfigurować w języku YAML, ustawiając właściwość fetchTags
i w interfejsie użytkownika, konfigurując ustawienie tagów synchronizacji.
Aby skonfigurować ustawienie w języku YAML, ustaw właściwość fetchTags
.
steps:
- checkout: self
fetchTags: true
Aby skonfigurować ustawienie w interfejsie użytkownika potoku, zmodyfikuj potok YAML i wybierz pozycję Więcej akcji, wyzwalacze , YAML, Pobierz źródłai zaznacz lub usuń zaznaczenie pola wyboru tagów synchronizacji. Aby uzyskać więcej informacji, zobacz Tagi synchronizacji.
Zachowanie domyślne
- W przypadku istniejących potoków utworzonych przed wydaniem przebiegu usługi Azure DevOps 209, wydanego we wrześniu 2022 r., domyślna opcja synchronizacji tagów pozostaje taka sama jak istniejące zachowanie przed dodaniu tagów synchronizacji opcji, co jest
true
. - W przypadku nowych potoków utworzonych po uruchomieniu przebiegu usługi Azure DevOps w wersji 209 domyślna dla tagów synchronizacji jest
false
.
Ważny
Tagi synchronizacji ustawienie wartości true w interfejsie użytkownika ma pierwszeństwo przed instrukcją fetchTags: false
w yaML. Jeśli tagów synchronizacji jest ustawiona na wartość true w interfejsie użytkownika, tagi są synchronizowane, nawet jeśli fetchTags
jest ustawiona na wartość false w yaML.
Przykłady
Istnieją trzy opcje dla checkout
. Domyślnie usługa Azure DevOps sprawdza bieżące repozytorium przy użyciu self
dla zadań. Po ustawieniu none
nie jest wyewidencjonowane żadne repozytorium. Jeśli określisz inne repozytorium, to repozytorium zostanie wyewidencjonowane. Aby sprawdzić inne repozytorium, skonfiguruj je jako zasób repozytorium najpierw.
# Checkout the current repository
steps:
- checkout: self
# Prevent checking out any source code
steps:
- checkout: none
# Checkout a different repository
steps:
- checkout: my-other-repo
Aby uniknąć synchronizowania źródeł w ogóle:
steps:
- checkout: none
Nuta
Jeśli używasz agenta na koncie usługi lokalnej i chcesz zmodyfikować bieżące repozytorium przy użyciu operacji git lub ładowania modułów podrzędnych git, nadaj odpowiednie uprawnienia użytkownikowi kont usług kompilacji kolekcji projektów.
- checkout: self
submodules: true
persistCredentials: true
Aby sprawdzić wiele repozytoriów w potoku, wykonaj wiele kroków checkout
:
- checkout: self
- checkout: git://MyProject/MyRepo
- checkout: MyGitHubRepo # Repo declared in a repository resource
Aby uzyskać więcej informacji, zobacz Zapoznaj się z wieloma repozytoriami w potoku.