相关文章推荐
聪明的手电筒  ·  vue Openlayers ...·  2 月前    · 
侠义非凡的椰子  ·  C# ...·  1 年前    · 
善良的水煮鱼  ·  How to fix - Error 5: ...·  1 年前    · 

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

这是分步指南,显示如何使用 Azure Pipelines 根据 Git 存储库构建示例应用程序。 本指南使用通过 YAML 管道编辑器 配置的 YAML 管道。 如果要改用经典管道,请参阅 定义经典管道 。 有关使用 TFVC 的指导,请参阅 生成 TFVC 存储库

先决条件 - Azure DevOps

确保具有以下内容:

  • GitHub 帐户,可在其中创建存储库。 免费创建一个

  • Azure DevOps 组织。 免费创建一个 。 如果你的团队已创建帐户,请确保你是要使用的 Azure DevOps 项目的管理员。

  • 能够在 Microsoft 托管的代理上运行管道。 若要使用 Microsoft 托管代理,Azure DevOps 组织必须有权访问 Microsoft 托管并行作业。 可以购买 并行作业 ,也可以 请求免费授予

    创建第一个管道

    Python JavaScript

    获取 Java 示例代码

    首先,请将以下存储库分支到 GitHub 帐户中。

    https://github.com/MicrosoftDocs/pipelines-java
    

    创建第一个 Java 管道

  • 登录到你的 Azure DevOps 组织,并转到你的项目。

  • 转到“管道”,然后选择“新建管道”或是“创建管道”(如果是首次创建管道)。

  • 完成向导中的各个步骤。首先选择 GitHub 作为源代码位置。

  • 可能会重定向到 GitHub 进行登录。 如果是这样,请输入 GitHub 凭据。

  • 看到存储库列表时,请选择你的存储库。

  • 你可能会被重定向到 GitHub 来安装 Azure Pipelines 应用。 如果是,请选择批准并安装

  • Azure Pipelines 将分析你的存储库,并建议使用 Maven 管道模板。

  • 当新管道出现时,请查看 YAML 以了解其功能。 准备就绪后,选择“保存并运行”。

  • 系统会提示将新的 azure-pipelines.yml 文件提交到存储库。 对消息没有疑问后,再次选择“保存并运行”。

    如果你要观察管道的运行情况,请选择生成作业。

    你刚刚创建并运行了我们为你自动创建的管道,因为你的代码看起来与 Maven 模板非常匹配。

    现在你的存储库中已经有一个正常工作的 YAML 管道 (azure-pipelines.yml),你可以对其进行自定义了!

  • 准备好更改管道后,请在“管道”页面中选择该管道,然后选择“编辑”来编辑 azure-pipelines.yml 文件。

    详细了解如何在管道中使用 Java

    获取 .NET 示例代码

    首先,请将以下存储库分支到 GitHub 帐户中。

    https://github.com/MicrosoftDocs/pipelines-dotnet-core
    

    创建第一个 .NET Core 管道

  • 登录到你的 Azure DevOps 组织,并转到你的项目。

  • 转到“管道”,然后选择“新建管道”或是“创建管道”(如果是首次创建管道)。

  • 完成向导中的各个步骤。首先选择 GitHub 作为源代码位置。

  • 可能会重定向到 GitHub 进行登录。 如果是这样,请输入 GitHub 凭据。

  • 看到存储库列表时,请选择你的存储库。

  • 你可能会被重定向到 GitHub 来安装 Azure Pipelines 应用。 如果是,请选择批准并安装

  • Azure Pipelines 将分析你的存储库,并建议使用 ASP.NET Core 管道模板。

  • 当新管道出现时,请查看 YAML 以了解其功能。 准备就绪后,选择“保存并运行”。

  • 系统会提示将新的 azure-pipelines.yml 文件提交到存储库。 对消息没有疑问后,再次选择“保存并运行”。

    如果你要观察管道的运行情况,请选择生成作业。

    你刚刚创建并运行了我们为你自动创建的管道,因为你的代码看起来与 ASP.NET Core 模板非常匹配。

    现在你的存储库中已经有一个正常工作的 YAML 管道 (azure-pipelines.yml),你可以对其进行自定义了!

  • 准备好更改管道后,请在“管道”页面中选择该管道,然后选择“编辑”来编辑 azure-pipelines.yml 文件。

    详细了解如何在管道中使用 .NET Core

    获取 Python 示例代码

    首先,请将以下存储库分支到 GitHub 帐户中。

    https://github.com/Microsoft/python-sample-vscode-flask-tutorial
    

    创建第一个 Python 管道

  • 登录到你的 Azure DevOps 组织,并转到你的项目。

  • 转到“管道”,然后选择“新建管道”或是“创建管道”(如果是首次创建管道)。

  • 完成向导中的各个步骤。首先选择 GitHub 作为源代码位置。

  • 可能会重定向到 GitHub 进行登录。 如果是这样,请输入 GitHub 凭据。

  • 看到存储库列表时,请选择你的存储库。

  • 你可能会被重定向到 GitHub 来安装 Azure Pipelines 应用。 如果是,请选择批准并安装

  • Azure Pipelines 将分析你的存储库,并建议使用 Python 包 管道模板。

  • 当新管道出现时,请查看 YAML 以了解其功能。 准备就绪后,选择“保存并运行”。

  • 系统会提示将新的 azure-pipelines.yml 文件提交到存储库。 对消息没有疑问后,再次选择“保存并运行”。

    如果你要观察管道的运行情况,请选择生成作业。

    你刚刚创建并运行了我们为你自动创建的管道,因为你的代码看起来与 Python 包 模板非常匹配。

    现在你的存储库中已经有一个正常工作的 YAML 管道 (azure-pipelines.yml),你可以对其进行自定义了!

  • 准备好更改管道后,请在“管道”页面中选择该管道,然后选择“编辑”来编辑 azure-pipelines.yml 文件。

    详细了解如何在管道中使用 Python

    获取 JavaScript 示例代码

    首先,请将以下存储库分支到 GitHub 帐户中。

    https://github.com/Azure-Samples/js-e2e-express-server
    

    创建第一个 JavaScript 管道

  • 登录到你的 Azure DevOps 组织,并转到你的项目。

  • 转到“管道”,然后选择“新建管道”或是“创建管道”(如果是首次创建管道)。

  • 完成向导中的各个步骤。首先选择 GitHub 作为源代码位置。

  • 可能会重定向到 GitHub 进行登录。 如果是这样,请输入 GitHub 凭据。

  • 看到存储库列表时,请选择你的存储库。

  • 你可能会被重定向到 GitHub 来安装 Azure Pipelines 应用。 如果是,请选择批准并安装

  • Azure Pipelines 将分析你的存储库,并建议使用 Node.js 管道模板。

  • 当新管道出现时,请查看 YAML 以了解其功能。 准备就绪后,选择“保存并运行”。

  • 系统会提示将新的 azure-pipelines.yml 文件提交到存储库。 对消息没有疑问后,再次选择“保存并运行”。

    如果你要观察管道的运行情况,请选择生成作业。

    你刚刚创建并运行了我们为你自动创建的管道,因为你的代码看起来与 Node.js 模板非常匹配。

    现在你的存储库中已经有一个正常工作的 YAML 管道 (azure-pipelines.yml),你可以对其进行自定义了!

  • 准备好更改管道后,请在“管道”页面中选择该管道,然后选择“编辑”来编辑 azure-pipelines.yml 文件。

    详细了解如何在管道中使用 JavaScript

    在管道登录页面中,可以查看管道和管道运行、创建和导入管道、管理安全性,以及向下钻取到管道和运行详细信息。

    选择“最近”可查看最近运行的管道(默认视图),选择“全部”可查看所有管道。

    选择一个管道可管理该管道并查看其运行。 选择最后一个运行的生成号可查看该生成的结果,选择分支名称可查看该运行的分支,选择上下文菜单可运行管道并执行其他管理操作。

    选择“运行”可查看所有管道运行。 可以选择性地筛选显示的运行。

    选择一个管道运行可查看有关该运行的信息。

    可以从上下文菜单中选择“保留”或“删除”某个运行。 有关保留运行的详细信息,请参阅生成和发布保留策略

    查看管道详细信息

    在管道的详细信息页面中可以查看和管理该管道。

    选择“编辑”可编辑管道。 有关详细信息,请参阅 YAML 管道编辑器。 还可通过在托管管道的存储库中直接修改 azure-pipelines.yml 文件来编辑管道。

    查看管道运行详细信息

    在管道运行摘要中,可以查看运行状态:正在运行和已完成。

    在摘要窗格中,可以查看作业和阶段详细信息,下载项目,以及导航到链接的提交、测试结果和工作项。

    作业和阶段

    作业窗格显示阶段和作业的状态概述。 此窗格可能包含多个选项卡,具体取决于管道是同时具有阶段和作业,还是只有作业。 在此示例中,管道具有名称为“生成”和“部署”的两个阶段。 可以通过在“阶段”或“作业”窗格中选择作业,向下钻取到管道步骤。

    选择某个作业可查看该作业的步骤。

    在步骤视图中,可以查看每个步骤的状态和详细信息。 在“更多操作”中,可以切换时间戳或查看管道中所有步骤的原始日志。

    取消和重新运行管道

    如果管道正在运行,可以通过选择“取消”来取消运行。 如果运行已完成,可以通过选择“重新运行”来重新运行管道。

    管道运行更多操作菜单

    在“更多操作”菜单中,可以下载日志、添加标记、编辑管道、删除运行,以及为运行配置保留策略。

    你无法删除保留的运行。 如果未看到“删除”,请选择“停止保留运行”,然后删除该运行。 如果同时看到删除查看保留版本,则配置的一个或多个保留策略仍适用于该运行。 选择查看保留版本,删除策略(仅删除所选运行的策略),然后删除该运行。

    即使在专用项目中,默认情况下也会启用匿名锁屏提醒访问。 启用匿名锁屏提醒访问后,组织外部的用户可以通过锁屏提醒状态 API 查询项目名称、分支名称、作业名称和生成状态等信息。

    由于你刚刚更改了此存储库中的 Readme.md 文件,因此 Azure Pipelines 会根据存储库根目录处 azure-pipelines.yml 文件中的配置自动生成代码。 返回到 Azure Pipelines,可以看到出现了一个新的运行。 每次进行编辑时,Azure Pipelines 都会启动一个新运行。

    本教程的重点是 CI/CD,因此我们只是简单介绍了代码部分。 我们直接在 Web 浏览器中使用 Azure Repos Git 存储库。

    准备好开始生成和部署实际应用时,可以通过 Azure Pipelines CI 生成使用各种版本控制的客户端和服务。 了解详细信息

    创建生成管道

    创建输出“Hello World”的生成管道。

  • 选择“Azure Pipelines”,系统会自动将你转至“生成”页。

    生成管道是用于定义自动生成管道的实体。 在生成管道中,编写一组任务,每个任务在生成中执行一个步骤。 任务目录提供了一组丰富的任务供你开始操作。 还可以将 PowerShell 或 shell 脚本添加到生成管道。

    从生成发布生成工件

    典型的生成会生成一个工件,然后可以将其部署到发布的各个阶段。 在这里,为了简单地演示该功能,我们只需将脚本作为生成工件发布。

  • 选择“任务”选项卡,选择加号 ( + ) 以将任务添加到“作业 1”。

  • 选择“实用工具”类别,选择“发布生成工件”任务,然后选择“添加”。

    发布路径:选择 按钮以进行浏览,然后选择创建的脚本。

    项目名称:输入“drop”。

    生成工件发布位置:选择“Azure Artifacts/TFS”。

    生成工件是你希望生成最终生成的文件。 生成工件几乎可以是团队测试或部署应用所需的任何内容。 例如,你有一个 .DLL,.EXE 可执行文件和 C# 或 C++ .NET Windows 应用的 PDB 符号文件。

    为了使你能够生成生成工件,我们提供了一些工具,例如使用模式匹配进行复制,以及一个暂存目录,你可以在其中收集生成工件,然后再发布生成工件。 请参阅 Azure Pipelines 中的生成工件

    启用持续集成 (CI)

  • 选择“触发器”选项卡。

  • 启用“持续集成”。

    生成管道上的持续集成触发器指示,每当提交代码更改时,系统都应自动将新生成排队。 你可以使用常规触发器,或者使用更具体的触发器,还可以计划生成(例如,每晚)。 请参阅生成触发器

    保存生成并将其排队

    手动保存生成并将其排队,然后测试生成管道。

  • 选择“保存并排队”,然后选择“保存并排队”

  • 在对话框中,再次选择“保存并排队”

    这会在 Microsoft 托管代理上将新生成排队。

  • 页面顶部显示了新生成的链接。

    选择该链接可实时观察新生成。 分配代理后,你将开始看到生成的实时日志。 注意,PowerShell 脚本作为生成的一部分运行,并且会在控制台上显示“Hello world”。

    我们刚刚在这些步骤中介绍了生成变量的概念。 我们输出了由系统自动预定义和初始化的变量的值。 还可以定义自定义变量,并在任务的参数中使用这些变量,或将其用作脚本中的环境变量。 若要了解有关变量的详细信息,请参阅生成变量

    你已有一个生成管道。 后续步骤

    你已创建一个生成管道,该管道可自动生成并验证团队签入的任何代码。 此时,可以继续学习下一部分,了解发布管道。 或者,如果愿意,可以跳到为应用创建生成管道。

    创建发布管道

    定义分两个阶段运行脚本的过程。

  • 转到“管道”选项卡,然后选择“发布”。

  • 选择“操作”,创建一个新的管道。 如果已创建发布管道,请选择加号 ( + ),然后选择“创建发布管道”。

  • 选择要以“空作业”开始的操作。

  • 将阶段命名为“QA”。

  • 在“生成工件”面板中,选择“+ 添加”,并指定“源(生成管道)”。 选择 添加

  • 选择“闪电”符号以触发持续部署,然后在右侧启用“持续部署触发器”。

    发布管道是部署应用程序生成工件的一系列阶段。 它还定义了每个阶段的实际部署管道,以及如何将生成工件从一个阶段推进到另一个阶段。

    另请注意,我们在脚本参数中使用了一些变量。 在本例中,我们使用发布变量而不是用于生成管道的生成变量。

    在每个阶段运行脚本。

  • 创建新发布。

    显示“新建发布”时,选择“创建”。

  • 打开创建的发布。

    Write-Host "Hello world" from $greeter Write-Host Trigger: $trigger Write-Host "Now that you've got CI/CD, you can automatically deploy your app every time your team checks in code."
  • 提交(保存)脚本。

  • 选择“生成”选项卡,查看生成已排队并运行。

  • 生成完成后,选择“发布”选项卡,打开新的发布,然后转到 “日志”。

    新代码会自动部署在“QA”阶段,然后部署到“生产”阶段。

    若要详细了解如何生成 GitHub 存储库,请参阅生成 GitHub 存储库

    若要了解如何发布管道工件,请参阅发布管道工件

    若要了解可在 YAML 管道中执行的其他操作,请参阅 YAML 架构参考

    如果创建了任何测试管道,则使用完这些管道后,可以轻松将其删除。

    Azure DevOps CLI

    若要使用 Azure CLI 删除管道,可以使用 az pipeline delete 命令。 此命令需要删除管道的 id,可以使用 az pipeline list 命令获取。

    列出管道 | 删除管道 | 示例

    如果这是你第一次使用 az pipelines 命令,请参阅 Azure DevOps CLI 入门

    可以使用 az pipelines list 命令列出管道。

    az pipelines list [--detect {false, true}]
                      [--folder-path]
                      [--name]
                      [--org]
                      [--project]
                      [--query-order {ModifiedAsc, ModifiedDesc, NameAsc, NameDesc, None}]
                      [--repository]
                      [--repository-type {bitbucket, git, github, githubenterprise, svn, tfsgit, tfsversioncontrol}]
                      [--top]
    
  • detect:自动检测组织。 接受的值:false、true
  • folder-path:如果已指定,将筛选到此文件夹下的定义。
  • name:将结果限制为具有此名称或以此名称开头的管道。 示例:“FabCI”或“Fab*”。
  • org 或 organization:Azure DevOps 组织 URL。 可以使用 az devops configure -d organization=ORG_URL 配置默认组织。 如果未配置为默认或未通过 git 配置进行选取,则为必需。示例:https://dev.azure.com/MyOrganizationName/
  • project 或 p:项目的名称或 ID。 可以使用 az devops configure -d project=NAME_OR_ID 配置默认项目。 如果未配置为默认或通过 git 配置进行选取,则为必需。
  • query-order:结果的顺序。 接受的值:ModifiedAsc、ModifiedDesc、NameAsc、NameDesc、None
  • repository:将结果限制为与此存储库关联的管道。
  • repository-type:将结果限制为与此存储库类型关联的管道。 必须将 repository 参数与此参数一起传递。 接受的值:bitbucket、git、github、githubenterprise、svn、tfsgit、tfsversioncontrol
  • top:要列出的管道的最大数目。
  • 可以使用 az pipelines delete 命令删除管道。

    az pipelines delete --id
                        [--detect {false, true}]
                        [--org]
                        [--project]
                        [--yes]
    
  • id:(必需)管道的 ID。
  • detect:自动检测组织。 接受的值:false、true
  • org 或 organization:Azure DevOps 组织 URL。 可以使用 az devops configure -d organization=ORG_URL 配置默认组织。 如果未配置为默认或未通过 git 配置进行选取,则为必需。示例:https://dev.azure.com/MyOrganizationName/
  • project 或 p:项目的名称或 ID。 可以使用 az devops configure -d project=NAME_OR_ID 配置默认项目。 如果未配置为默认或通过 git 配置进行选取,则为必需。
  • yes 或 y:不提示进行确认。
  • 以下示例以表格式列出管道,然后删除 ID 为 6 的管道。 此示例使用以下默认配置:az devops configure --defaults organization=https://dev.azure.com/fabrikam-tailspin project=FabrikamFiber

    az pipelines list --output table
    ID    Path    Name           Status    Default Queue
    ----  ------  -------------  --------  ------------------
    6     \       FabrikamFiber  enabled   Hosted Ubuntu 1604
    az pipelines delete --id 6
    Are you sure you want to delete this pipeline? (y/n): y
    Pipeline 6 was deleted successfully.
    
  • 适用于 Windows、macOS 和 Linux 的 Visual Studio Code
  • Visual Studio with Git for WindowsVisual Studio for Mac
  • Eclipse
  • Xcode
  • IntelliJ
  • Azure Pipelines
  • Azure Repos Git、GitHub 和 Bitbucket Cloud 等 Git 服务提供商
  • Subversion
  • 适用于 Windows、macOS 和 Linux 的 Visual Studio Code
  • Visual Studio with Git for WindowsVisual Studio for Mac
  • Visual Studio with TFVC
  • Eclipse
  • Xcode
  • IntelliJ
  • Azure Pipelines
  • GitHub 和 Bitbucket Cloud 等 Git 服务提供商
  • Subversion
  • 即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:https://aka.ms/ContentUserFeedback

    提交和查看相关反馈

  •