Görev türleri kullanım &Task types & usage

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

Not

Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde, derleme ve yayın işlem hatları tanımlar olarak adlandırılır, çalışmalara derlemeler denir, hizmet bağlantılarına hizmet uç noktaları denir, aşamalar ortamlar olarak adlandırılır ve işler aşamalar olarak adlandırılır.In Microsoft Team Foundation Server (TFS) 2018 and previous versions, build and release pipelines are called definitions, runs are called builds, service connections are called service endpoints, stages are called environments, and jobs are called phases.

Görev , bir işlem hattında Otomasyon tanımlamak için yapı taşıdır.A task is the building block for defining automation in a pipeline. Bir görev, bir giriş kümesiyle soyutlaneklenen paketlenmiş bir betiktir veya yordamdır.A task is simply a packaged script or procedure that has been abstracted with a set of inputs.

İşlem hattınızı bir görev eklediğinizde, işlem hattına bir talep kümesi de ekleyebilir.When you add a task to your pipeline, it may also add a set of demands to the pipeline. Talepler, görevi çalıştırmak için aracıya yüklenmesi gereken önkoşulları tanımlar.The demands define the prerequisites that must be installed on the agent for the task to run. Derlemeyi veya dağıtımı çalıştırdığınızda, bu talepleri karşılayan bir aracı seçilir.When you run the build or deployment, an agent that meets these demands will be chosen.

Bir çalıştırdığınızda, diğer tüm görevler sırayla çalıştırılır.When you run a job, all the tasks are run in sequence, one after the other. Aynı görev kümesini birden çok aracıda paralel olarak çalıştırmak veya bir aracı kullanmadan bazı görevleri çalıştırmak için bkz. işler.To run the same set of tasks in parallel on multiple agents, or to run some tasks without using an agent, see jobs.

Varsayılan olarak, tüm görevler konak üzerinde mi yoksa bir iş kapsayıcısıiçinde olsun, aynı bağlamda çalışır.By default, all tasks run in the same context, whether that's on the host or in a job container. İsteğe bağlı olarak, tek bir görevin bağlamını denetlemek için adım hedeflerini kullanabilirsiniz.You may optionally use step targets to control context for an individual task.

YAML şemasıile bir görevin özelliklerini belirtme hakkında daha fazla bilgi edinin.Learn more about how to specify properties for a task with the YAML schema.

Bir çalıştırdığınızda, tüm görevler, bir aracıda diğeri bir sırayla çalıştırılır.When you run a job, all the tasks are run in sequence, one after the other, on an agent. Aynı görev kümesini birden çok aracıda paralel olarak çalıştırmak veya bir aracı kullanmadan bazı görevleri çalıştırmak için bkz. işler.To run the same set of tasks in parallel on multiple agents, or to run some tasks without using an agent, see jobs.

Özel görevlerCustom tasks

Temel derleme ve dağıtım senaryolarını etkinleştirmek için bazı yerleşik görevler sağlıyoruz.We provide some built-in tasks to enable fundamental build and deployment scenarios. Kendi özel görevinizi oluşturmakiçin de kılavuzluk sunuyoruz.We have also provided guidance for creating your own custom task.

Ayrıca, Visual Studio Market birçok uzantı sunar; her biri, aboneliğinize veya koleksiyonunuza yüklendiğinde, görev kataloğunu bir veya daha fazla görev ile genişletir.In addition, Visual Studio Marketplace offers a number of extensions; each of which, when installed to your subscription or collection, extends the task catalog with one or more tasks. Ayrıca, Azure Pipelines veya TFS 'ye görev eklemek için kendi özel uzantılarınızı yazabilirsiniz.Furthermore, you can write your own custom extensions to add tasks to Azure Pipelines or TFS.

YAML işlem hatları 'nda görevlere adına göre başvurursunuz.In YAML pipelines, you refer to tasks by name. Bir ad hem yerleşik bir görevle hem de özel bir görevle eşleşiyorsa, yerleşik görev öncelikli olur.If a name matches both an in-box task and a custom task, the in-box task will take precedence. Bu riski önlemek için, özel görev için görev GUID 'sini veya tam nitelikli bir adı kullanabilirsiniz:You can use the task GUID or a fully-qualified name for the custom task to avoid this risk:

steps:
- task: myPublisherId.myExtensionId.myContributionId.myTaskName@1 #format example
- task: qetza.replacetokens.replacetokens-task.replacetokens@3 #working example

myPublisherIdVe myExtensionId ' yi bulmak için Market 'teki bir görevi Al ' ı seçin.To find myPublisherId and myExtensionId, select Get on a task in the marketplace. itemNameURL dizinizdeki öğesinden sonraki değerler myPublisherId ve myExtensionId .The values after the itemName in your URL string are myPublisherId and myExtensionId. Ayrıca, görevi bir yayın ardışık düzenine ekleyerek ve görevi düzenlenirken YAML görüntüle ' ye tıklayarak tam nitelikli adı bulabilirsiniz.You can also find the fully-qualified name by adding the task to a Release pipeline and selecting View YAML when editing the task.

Görev sürümleriTask versions

Görevler sürümlüdür ve işlem hattınızda kullanılan görevin ana sürümünü belirtmeniz gerekir.Tasks are versioned, and you must specify the major version of the task used in your pipeline. Bu, bir görevin yeni sürümleri serbest bırakıldığında sorunları önlemeye yardımcı olabilir.This can help to prevent issues when new versions of a task are released. Görevler genellikle geriye dönük olarak uyumludur, ancak bazı senaryolarda bir görev otomatik olarak güncelleniyorsa öngörülemeyen hatalarla karşılaşabilirsiniz.Tasks are typically backwards compatible, but in some scenarios you may encounter unpredictable errors when a task is automatically updated.

Yeni bir ikincil sürüm yayınlanmışsa (örneğin, 1,2 ile 1,3 arasında), derleme veya sürüm otomatik olarak yeni sürümü kullanacaktır.When a new minor version is released (for example, 1.2 to 1.3), your build or release will automatically use the new version. Ancak, yeni bir ana sürüm yayınlanmışsa (örneğin 2,0), derleme veya sürüm, işlem hattını düzenleyip ve yeni ana sürüme el ile değişene kadar belirttiğiniz ana sürümü kullanmaya devam eder.However, if a new major version is released (for example 2.0), your build or release will continue to use the major version you specified until you edit the pipeline and manually change to the new major version. Derleme veya yayın günlüğü, yeni bir ana sürümün kullanılabilir olduğunu belirten bir uyarı içerecektir.The build or release log will include an alert that a new major version is available.

İşaretinden sonra bir görevin tam sürüm numarasını belirterek hangi ikincil sürümün kullanılacağını ayarlayabilirsiniz @ (örnek: GoTool@0.3.1 ).You can set which minor version gets used by specifying the full version number of a task after the @ sign (example: GoTool@0.3.1). Yalnızca Kuruluşunuziçin mevcut olan görev sürümlerini kullanabilirsiniz.You can only use task versions that exist for your organization.

YAML 'de, görev adında ana sürümü belirtirsiniz @ .In YAML, you specify the major version using @ in the task name. Örneğin, görevin 2. sürümüne sabitlemek için PublishTestResults :For example, to pin to version 2 of the PublishTestResults task:

steps:
- task: PublishTestResults@2

YAML işlem hatları TFS 'de kullanılamaz.YAML pipelines aren't available in TFS.

Görev denetimi seçenekleriTask control options

Her görev size bazı Denetim seçenekleri sunar.Each task offers you some Control Options.

Denetim seçenekleri, bölümünde anahtarlar olarak kullanılabilir task .Control options are available as keys on the task section.

- task: string  # reference to a task and version, e.g. "VSBuild@1"
  condition: expression     # see below
  continueOnError: boolean  # 'true' if future steps should run even if this step fails; defaults to 'false'
  enabled: boolean          # whether or not to run this step; defaults to 'true'
  timeoutInMinutes: number  # how long to wait before timing out the task
  target: string            # 'host' or the name of a container resource to target

Zaman aşımı süresi, görev çalışmaya başladığında başlar.The timeout period begins when the task starts running. Görevin kuyruğa alındığı veya bir aracıyı beklediği zaman dahil değildir.It does not include the time the task is queued or is waiting for an agent.

Bu YAML 'de, PublishTestResults@2 succeededOrFailed () koşulunedeniyle önceki adım başarısız olsa bile çalışır.In this YAML, PublishTestResults@2 will run even if the previous step fails because of the succeededOrFailed() condition.

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.7'
    architecture: 'x64'
- task: PublishTestResults@2
  inputs:
    testResultsFiles: "**/TEST-*.xml"
  condition: succeededOrFailed()

Not

Tam şema için bkz. YAML şeması task .For the full schema, see YAML schema for task.

KoşullarConditions

  • Yalnızca önceki tüm bağımlılıklar başarılı olduğunda.Only when all previous dependencies have succeeded. YAML 'de bir koşul ayarlanmamışsa bu varsayılandır.This is the default if there is not a condition set in the YAML.

  • Önceki bağımlılık başarısız olsa bile, çalıştırma iptal edilmediği takdirde.Even if a previous dependency has failed, unless the run was canceled. succeededOrFailed()Bu koşul IÇIN YAML 'de kullanın.Use succeededOrFailed() in the YAML for this condition.

  • Önceki bağımlılık başarısız olsa bile, çalıştırma iptal edilse bile.Even if a previous dependency has failed, even if the run was canceled. always()Bu koşul IÇIN YAML 'de kullanın.Use always() in the YAML for this condition.

  • Yalnızca önceki bir bağımlılık başarısız olduğunda.Only when a previous dependency has failed. failed()Bu koşul IÇIN YAML 'de kullanın.Use failed() in the YAML for this condition.

Adım hedefiStep target

Görevler, aracı Konağı ya da kapsayıcı olan bir yürütme bağlamında çalışır.Tasks run in an execution context, which is either the agent host or a container. Tek bir adım bir belirterek bağlamını geçersiz kılabilir target .An individual step may override its context by specifying a target. Kullanılabilir seçenekler, aracı konağını hedefleyecek sözcüktir ve işlem hattında host tanımlanan kapsayıcılardır.Available options are the word host to target the agent host plus any containers defined in the pipeline. Örnek:For example:

resources:
  containers:
  - container: pycontainer
    image: python:3.8

steps:
- task: SampleTask@1
  target: host
- task: AnotherTask@1
  target: pycontainer

Burada, SampleTask konakta çalışır ve AnotherTask bir kapsayıcıda çalışır.Here, the SampleTask runs on the host and AnotherTask runs in a container.

YAML işlem hatları TFS 'de kullanılamaz.YAML pipelines aren't available in TFS.

Derleme araç yükleyicileri (Azure Pipelines)Build tool installers (Azure Pipelines)

Araç yükleyicileri, bağımlılıklarınızı yüklemek ve denetlemek için derleme işlem hattınızı etkinleştirir.Tool installers enable your build pipeline to install and control your dependencies. Özellikle:Specifically, you can:

  • CI derlemeniz için anında ( Microsoft tarafından barındırılan aracılardabile) bir araç veya çalışma zamanı yüklersiniz.Install a tool or runtime on the fly (even on Microsoft-hosted agents) just in time for your CI build.

  • Uygulamanızı veya kitaplığınızı Node.js gibi bağımlılığın birden çok sürümüne karşı doğrulayın.Validate your app or library against multiple versions of a dependency such as Node.js.

Örneğin, Node.js birden çok sürümü için uygulamanızı çalıştırmak ve doğrulamak üzere derleme işlem hattınızı ayarlayabilirsiniz.For example, you can set up your build pipeline to run and validate your app for multiple versions of Node.js.

Örnek: uygulamanızı Node.js birden çok sürümünde test edin ve doğrulayınExample: Test and validate your app on multiple versions of Node.js

Projenizin temel dizininde aşağıdaki içeriklerle bir Azure-Pipelines. yıml dosyası oluşturun.Create an azure-pipelines.yml file in your project's base directory with the following contents.

pool:
  vmImage: 'Ubuntu 16.04'

steps:
# Node install
- task: NodeTool@0
  displayName: Node install
  inputs:
    versionSpec: '6.x' # The version we're installing
# Write the installed version to the command line
- script: which node

Yeni bir derleme işlem hattı oluşturun ve çalıştırın.Create a new build pipeline and run it. Yapılandırmanın nasıl çalıştırıldığını gözlemleyin.Observe how the build is run. Node.js aracı yükleyicisi , zaten aracıda yoksa Node.js sürümünü indirir.The Node.js Tool Installer downloads the Node.js version if it is not already on the agent. Komut satırı betiği, Node.js sürümünün konumunu diskte günlüğe kaydeder.The Command Line script logs the location of the Node.js version on disk.

YAML işlem hatları TFS 'de kullanılamaz.YAML pipelines aren't available in TFS.

Araç yükleyici görevleriTool installer tasks

Araç yükleyici görevlerimizin bir listesi için bkz. araç yükleyici görevleri.For a list of our tool installer tasks, see Tool installer tasks.

Box ve Market görevlerini devre dışı bırakmaDisabling in-box and Marketplace tasks

Kuruluş ayarları sayfasında Market görevlerini, yerleşik görevleri veya her ikisini de devre dışı bırakabilirsiniz.On the organization settings page, you can disable Marketplace tasks, in-box tasks, or both. Market görevlerinin devre dışı bırakılması, işlem hatlarınızın güvenliğini artırmaya yardımcı olabilir.Disabling Marketplace tasks can help increase security of your pipelines. Hem yerleşik hem de Market görevlerini devre dışı bırakırsanız, yalnızca kullanarak yüklediğiniz görevler tfx kullanılabilir.If you disable both in-box and Marketplace tasks, only tasks you install using tfx will be available.

Yardım ve destekHelp and support