将步骤的输出设置为数组 [英] Set output of step as array

查看:23
本文介绍了将步骤的输出设置为数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在GitHub操作中从我的存储库获得feature/*分支的列表,使用:

echo ::set-output name=branches::$( git branch -r | grep -i "feature/" | sed -e "s/.*origin///" | tr "
" " " )

但是,此列表是字符串输出,我需要将其放在字符串数组中,以便可以使用它通过矩阵策略调用另一个工作流。

我尝试了许多策略,包括:

  • ()中包装表达式会导致语法错误(";意外标记:(";)
  • 使用环境变量会导致空字符串,并在()中包含或不包含表达式
  • 使用局部变量,根据赋值方式不同会产生不同的结果。在我的开发环境中,我有两个功能分支(功能/质量-3和功能/测试-功能)

使用

branches=($( git branch -r | grep -i "feature/" | sed -e "s/.*origin///" | tr "
" " " ))

echo ::set-output name=branches::${branches[@]} # also ${branches[*]}

给出带有两个值的错误:意外类型的值‘Feature/Quality-3 Feature/test_Feature’,预期类型:Sequence。&Quot;

echo ::set-output name=branches::${branches} # or $branches

给出错误,值为1:意外类型的值‘Feature/Quality-3’,预期类型:Sequence。

推荐答案

您必须在作业之间将此类数据作为JSON传递:

使用以下组合:

Here是GitHub的完整示例

这篇关于将步骤的输出设置为数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆