将步骤的输出设置为数组 [英] Set output of step as array
本文介绍了将步骤的输出设置为数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在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屋!
查看全文