你一直能够通过Bitbucket管道使用Atlassian的基础设施执行CI/CD工作流程。这是使用Bitbucket管道的最简单方式,因为你不需要托管或管理任何服务器。我们为您托管和管理它。
但有时你需要对你的硬件、软件和你的构建执行环境有更多的控制。例如,你可能需要构建来访问防火墙后面的内部系统,或者用更多的内存配置你的硬件来运行复杂的构建。
为了解决这个问题,我们在六月宣布了管道运行器的公开测试版。运行器允许你在自己的基础设施上执行管道构建,因此你对服务器配置和预算有更多控制。
今天,我们很高兴地宣布,我们正在将运行器从测试版转为正式发布。
使用运行器的好处
随着Bitbucket现在支持使用自我托管的运行器,你现在可以将你的构建指向一个你指定的机器上运行。这可以是你自己在防火墙后面托管的服务器,或者是你管理的私有云上。
以下是使用运行器的一些好处:
- 自定义构建配置: 运行器允许你为不同类型的构建配置你的硬件。例如,如果你有资源密集型的构建,使用具有更多内存的硬件可以改善构建执行时间。
- 访问内部应用程序或数据库: 在Atlassian的基础设施上运行管道时,我们不能访问你的内部系统。如果你需要针对你的内部数据库或应用程序运行集成测试,你可以通过运行器来实现。由于这些运行器是由你托管/管理的,你可以提供对内部服务所需的任何访问。
- 混合工作流:您可以通过对需要的构建使用自定义配置的自我托管的运行器来优化您的资源,并对其他工作使用Atlassian的基础设施。当使用你自己的运行器时,我们不对你的运行器所消耗的构建时间收费。
如果你目前正在使用Bitbucket服务器和自带的CI/CD工具,如Jenkins或Bamboo,并考虑转移到Bitbucket云,使用运行器的选项意味着你可以使用Bitbucket管道,并仍然使用自己的基础设施来运行构建。
它是如何工作的
下面是一个快速演示,说明如何在你的管道中注册和使用运行器。
关键功能
在工作区层面上管理运行器: 如果你是工作区管理员,你可以为你的整个账户设置和管理多个运行器,以便它们可以在工作区的任何 repo 的管道中使用。当你的工作区有许多仓库时,这使得创建和管理你的运行程序更加容易,并节省了时间。

如果一个运行器被用于另一个构建,你的管道将被放在一个队列中,直到之前的工作完成。
如果你不是工作区的管理员,而是管理特定的仓库,你只能注册可以在这些特定仓库中使用的运行程序。
每台机器有多个运行器:为了优化资源的使用,你可以在每台机器上托管多个运行器,并能够在你的yaml代码中区分它们。当你有一台强大的机器,并希望根据你对不同类型工作的需要在上面配置多个运行器时,这很有用。
增加了内存限制:你可以为你的运行器分配高达32GB的内存,以运行那些需要太长时间或在我们的默认运行器上无法实现的步骤。
为每个步骤指定运行器:在管道yaml中,你可以指定每个步骤应该使用哪个运行器或运行器组。例如,你可能不需要所有步骤都使用高内存的运行器。这有助于管理运行器资源,使每个运行器都用于需要该配置的工作。
在这个片段中,步骤1在一个运行器上运行,而步骤2在默认的Atlassian基础设施上运行。请注意,在步骤1中,有一个标签参考。你可以使用标签对一组运行器进行分组,例如,如果你有一堆内存为32GB的运行器,你可以将这些运行器标记为这样,并在你的yaml中引用。因此,步骤1将在具有你指定的标签的任何运行器上运行。
标签的另一个好处是,你不需要记住不同运行器的确切名称。你可以使用标签来为你的工作选择合适的运行器:
pipelines:
custom:
customPipelineWithRunnerStep:
- step:
name: Step1
size: 8x # default 4gb, 8x for 32gb
runs-on:
- 'self.hosted'
- 'my.custom.label'
script:
- echo "This step will run on a self hosted runner with 32 GB of memory.";
- step:
name: Step2
script:
- echo "This step will run on Atlassian's infrastructure as usual.";
开始使用
要了解更多关于如何设置和使用自己的流道,这里有技术文件。
接下来是Windows运行器
目前,我们支持Linux系统的自我托管运行器。我们正在积极工作,以支持Windows运行器。这计划将在今年晚些时候发布。请查看我们的公共路线图以了解更多细节。
