跳到主要内容

新功能:在操作之间传递参数

· 阅读需 4 分钟
Alexander Kus

让您的工作流程保持灵活和简单非常重要,这样可以避免将来寝不安席,食不甘味。今天,我们添加了另一项功能,可帮助您保持流水线整洁:在执行操作之间传递参数以及在不同执行之间传递参数。

如何实现

首先,我们需要定义一个环境变量,将其设置为“可设置”,并(可选)输入其初始值:

Adding a new variable

现在我们可以在每个构建操作中设置这个变量的新值:

Command box

此类导出的变量将在具有新值的进一步操作和执行中可用。这似乎是一个次要功能,但它为您提供了很多可能性,因此让流水线变得更加灵活。

用例1:在通知中发送日志

从现在开始,我们可以将文件内容分配给变量并在任何通知操作中发送。假设我们有一个日志文件,每次构建失败时都希望将其发送到我们的 Slack 通道。

我们只需要将变量设置为“可设置”,并在“于失败”部分将日志内容分配与值,之后我们在通知中发送变量:

Pipeline example

  • 第一个操作执行构建并将结果保存在 logs.txt 文件中
  • 如果构建失败,则Localshell操作将使用export LOGS=$(cat log.txt)命令分配logs.txt内容。
  • 之后我们有Slack操作(我们在其中输入$LOGS)

Slack notification action

用例2: 语义化版本控制

您还可以使用该功能对您的应用程序进行版本控制。 在环境变量中,您将保持每次发布时递增的版本号。

新添变量:VERSION并将其初始化为“0”,在每次发布期间,我们都会通过localshell操作自动升级版本。

在发布我们的软件包时,将使用以这种方式创建的版本号。下面您可以看到一个将Docker镜像推送到注册中心的示例:

Semantic versioning pipeline example

您可以使用任何您想要的版本格式。例如,可以使用语义化发布格式1.1.1,您可以分别升级主要、次要和补丁版本。您所要做的就是定义可设置变量并在构建操作中更改其值(参见下面的示例):

Command box

总结

如上所示,此功能可用于创建真正高级的流水线。将来可以根据前一个操作结果来定义一个操作是否应该运行的条件。