steps.checkout definition
Verwenden Sie checkout
, um zu konfigurieren, wie die Pipeline Quellcode auscheckt.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: string # 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: string # 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: string # 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.
steps:
- checkout: string # Required as first property. Whether or not to check out the repository containing this pipeline definition.
clean: string # 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.
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.
steps:
- checkout: string # Required as first property. Whether or not to check out the repository containing this pipeline definition.
clean: string # 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.
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.
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.
Definitionen, die auf diese Definition verweisen: Schritte
Eigenschaften
checkout
Schnur. Erforderlich als erste Eigenschaft.
Konfiguriert das Auschecken für das angegebene Repository. Geben Sie self
, none
, den Repositorynamen oder die Repositoryressource an. Weitere Informationen finden Sie im Artikel zum Auschecken mehrerer Repositorys in Ihrer Pipeline.
Hinweis
Wenn kein checkout
Schritt vorhanden ist, wird standardmäßig self
für jobs.job.step.checkout
und none
für jobs.deployment.steps.checkout
verwendet.
checkout
Schnur. Erforderlich als erste Eigenschaft.
Gibt an, ob das Repository mit dieser Pipelinedefinition ausgecheckt werden soll. Geben Sie self
oder none
an.
clean
Schnur.
Wenn true, führen Sie git sauber -ffdx gefolgt von git reset --hard HEAD vor dem Abrufen aus. true | FALSE.
fetchDepth
Schnur.
Tiefe des abzurufenden Git-Graphen.
fetchTags
Schnur.
Legen Sie auf "true" fest, um Tags beim Abrufen des Repositorys zu synchronisieren, oder auf "false", um Tags nicht zu synchronisieren. Weitere Informationen zum Standardverhalten finden Sie in den Hinweisen.
lfs
Schnur.
Legen Sie auf "true" fest, um Git-LFS-Dateien herunterzuladen. Standardmäßig werden sie nicht heruntergeladen.
persistCredentials
Schnur.
Legen Sie diesen Wert auf "true" fest, um das OAuth-Token nach dem ersten Abruf in der Git-Konfiguration zu belassen. Die Standardeinstellung ist, dass sie nicht belassen wird.
submodules
Schnur.
Legen Sie für eine einzelne Ebene von Untermodulen auf "true" oder "rekursiv" fest, um Untermodule von Untermodulen abzurufen. Standardmäßig werden keine Untermodule abgerufen.
path
Schnur.
Speicherort des Repositorys. Das Stammverzeichnis ist $(Pipeline.Workspace).
condition
Schnur.
Werten Sie diesen Bedingungsausdruck aus, um zu bestimmen, ob dieser Task ausgeführt werden soll.
continueOnError
Boolescher Wert.
Die Ausführung auch bei Einem Fehler fortsetzen?
displayName
Schnur.
Lesbarer Name für die Aufgabe.
target
target.
Umgebung, in der dieser Task ausgeführt werden soll.
enabled
Boolescher Wert.
Führen Sie diese Aufgabe aus, wenn der Auftrag ausgeführt wird?
env
Zeichenfolgenwörterbuch.
Variablen, die der Umgebung des Prozesses zugeordnet werden sollen.
name
Schnur.
ID des Schritts. Zulässige Werte: [-_A-Za-z0-9]*.
timeoutInMinutes
Schnur.
Zeit, bis diese Aufgabe abgeschlossen ist, bevor sie vom Server beendet wird.
Hinweis
Pipelines können mit einem Timeout auf Auftragsebene konfiguriert werden. Wenn das Timeoutintervall auf Auftragsebene verstrichen ist, bevor der Schritt abgeschlossen ist, wird der ausgeführte Auftrag (einschließlich Ihres Schritts) beendet, auch wenn der Schritt mit einem längeren timeoutInMinutes
Intervall konfiguriert ist. Weitere Informationen finden Sie unter Timeouts.
retryCountOnTaskFailure
Schnur.
Anzahl von Wiederholungsversuchen, wenn der Task fehlschlägt.
Bemerkungen
Flaches Abrufen
Wichtig
Für neue Pipelines, die nach dem Azure DevOps-Sprint 209-Update vom September 2022 erstellt wurden, ist Flaches Abrufen standardmäßig aktiviert und mit der Tiefe 1 konfiguriert. Davor war das flache Abrufen nicht die Standardeinstellung. Um Ihre Pipeline zu überprüfen, zeigen Sie die Einstellung Für den flachen Abruf auf der Benutzeroberfläche der Pipelineeinstellungen an.
Zum Deaktivieren des flachen Abrufs können Sie eine der beiden folgenden Optionen ausführen.
- Deaktivieren Sie die Option Flacher Abruf in der Benutzeroberfläche der Pipelineeinstellungen.
- Explizit in Ihrem
checkout
Schritt festgelegtfetchDepth: 0
.
Um die Abruftiefe für eine Pipeline zu konfigurieren, können Sie entweder die fetchDepth
-Eigenschaft im checkout
Schritt festlegen oder die Einstellung "Flacher Abruf" in der Benutzeroberfläche der Pipelineeinstellungen konfigurieren.
Hinweis
Wenn Sie fetchDepth
in Ihrem checkout
-Schritt explizit festlegen, hat diese Einstellung Vorrang vor der Einstellung, die in der Benutzeroberfläche mit den Pipelineeinstellungen konfiguriert ist. Die Einstellung fetchDepth: 0
ruft den gesamten Verlauf ab und überschreibt die Einstellung Flaches Abrufen.
Clean-Eigenschaft
Wenn die clean
Eigenschaft nicht festgelegt ist, wird ihr Standardwert durch die einstellung sauber in den UI-Einstellungen für YAML-Pipelines konfiguriert, die standardmäßig auf true festgelegt ist. Zusätzlich zur Bereinigungsoption, die mit checkout
verfügbar ist, können Sie die Bereinigung auch in einem Arbeitsbereich konfigurieren. Weitere Informationen zu Arbeitsbereichen und sauber Optionen finden Sie im Arbeitsbereichsthema unter Aufträge.
Synchronisieren von Tags
Im Check-Out-Schritt wird die Option --tags
beim Abrufen des Inhalts eines Git-Repositorys verwendet. Dies bewirkt, dass der Server alle Tags und alle Objekte abruft, auf die von diesen Tags verwiesen wird. Dadurch verlängert sich die Ausführungsdauer der Aufgabe in einer Pipeline, insbesondere wenn es sich um ein umfangreiches Repository mit vielen Tags handelt. Darüber hinaus synchronisiert der Check-Out-Schritt Tags, auch wenn Sie die Option für flaches Abrufen aktivieren, was dem eigentlichen Zweck dieser Option widerspricht. Um die Menge der Daten zu reduzieren, die aus einem Git-Repository abgerufen oder gepullt werden, hat Microsoft eine neue Check-Out-Option hinzugefügt, mit der das Verhalten bei der Synchronisierung von Tags gesteuert werden kann. Diese Option ist sowohl in klassischen als auch in YAML-Pipelines verfügbar.
Ob Tags beim Auschecken eines Repositorys synchronisiert werden, können Sie in YAML durch Festlegen der fetchTags
-Eigenschaft und in der Benutzeroberfläche durch Festlegen der Einstellung Tags synchronisieren konfigurieren.
In YAML legen Sie zum Konfigurieren der Einstellung die fetchTags
-Eigenschaft fest.
steps:
- checkout: self
fetchTags: true
Um die Einstellung in der Pipelinebenutzeroberfläche zu konfigurieren, bearbeiten Sie Ihre YAML-Pipeline, und wählen Sie Weitere Aktionen, Trigger, YAML, Quellen abrufen aus, und aktivieren oder deaktivieren Sie das Kontrollkästchen Tags synchronisieren . Weitere Informationen finden Sie unter Synchronisieren von Tags.
Standardverhalten
- Für vorhandene Pipelines, die vor dem Release von Azure DevOps Sprint 209 vom September 2022 erstellt wurden, bleibt das Standardverhalten für die Synchronisierung von Tags unverändert und entspricht weiterhin dem Verhalten vor dem Hinzufügen der Optionen für Tags synchronisieren (d. h.
true
). - Für neue Pipelines, die nach dem Release von Azure DevOps-Sprint 209 erstellt wurden, ist
false
der Standardwert für die Synchronisierung von Tags.
Wichtig
Die Einstellung "Sync tags " (Synchronisierungstags) auf der Benutzeroberfläche hat Vorrang vor einer fetchTags: false
Anweisung im YAML. Wenn Synchronisierungstags auf der Benutzeroberfläche auf true festgelegt ist, werden Tags synchronisiert, auch wenn fetchTags
in YAML auf false festgelegt ist.
Beispiele
So vermeiden Sie die Synchronisierung von Quellen generell:
steps:
- checkout: none
Hinweis
Wenn Sie den Agent im Lokalen Dienstkonto ausführen und das aktuelle Repository mithilfe von Git-Vorgängen oder des Ladens von Git-Submodulen ändern möchten, erteilen Sie dem Benutzer „Builddienstkonten für Projektsammlung“ die entsprechenden Berechtigungen.
- checkout: self
submodules: true
persistCredentials: true
Gehen Sie beim Auschecken mehrerer Repositorys in Ihrer Pipeline in mehreren checkout
-Schritten vor:
- checkout: self
- checkout: git://MyProject/MyRepo
- checkout: MyGitHubRepo # Repo declared in a repository resource
Weitere Informationen finden Sie im Artikel zum Auschecken mehrerer Repositorys in Ihrer Pipeline.