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.checkoutverwendet.

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.

continueOnErrorBoolescher Wert.
Die Ausführung auch bei Einem Fehler fortsetzen?

displayName Schnur.
Lesbarer Name für die Aufgabe.

targettarget.
Umgebung, in der dieser Task ausgeführt werden soll.

enabledBoolescher 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.

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.

Weitere Informationen