让您的工作流程保持灵活和简单非常重要,这样可以避免将来寝不安席,食不甘味。今天,我们添加了另一项功能,可帮助您保持流水线整洁:在执行操作之间传递参数以及在不同执行之间传递参数。
如何实现
首先,我们需要定义一个环境变量,将其设置为“可设置”,并(可选)输入其初始值:
现在我们可以在每个构建操作中设置这个变量的新值:
此类导出的变量将在具有新值的进一步操作和执行中可用。这似乎是一个次要功能,但它为您提供了很多可能性,因此让流水线变得更加灵活。
用例1:在通知中发送日志
从现在开始,我们可以将文件内容分配给变量并在任何通知操作中发送。假设我们有一个日志文件,每次构建失败时都希望将其发送到我们的 Slack 通道。
我们只需要将变量设置为“可设置”,并在“于失败”部分将日志内容分配与值,之后我们在通知中发送变量:
- 第一个操作执行构建并将结果保存在 logs.txt 文件中
- 如果构建失败,则Localshell操作将使用
export LOGS=$(cat log.txt)
命令分配logs.txt内容。 - 之后我们有Slack操作(我们在其中输入
$LOGS
)
用例2: 语义化版本控制
您还可以使用该功能对您的应用程序进行版本控制。 在环境变量中,您将保持每次发布时递增的版本号。
新添变量:VERSION并将其初始化为“0”,在每次发布期间,我们都会通过localshell操作自动升级版本。
在发布我们的软件包时,将使用以这种方式创建的版本号。下面您可以看到一个将Docker镜像推送到注册中心的示例:
您可以使用任何您想要的版本格式。例如,可以使用语义化发布格式1.1.1,您可以分别升级主要、次要和补丁版本。您所要做的就是定义可设置变量并在构建操作中更改其值(参见下面的示例):
总结
如上所示,此功能可用于创建真正高级的流水线。将来可以根据前一个操作结果来定义一个操作是否应该运行的条件。