在Github操作中使用字典数据类型



你知道在Github工作流中使用字典之类的东西而不读取外部文件的哪些技巧?我尝试创建这样的东西:

{
"clusters01": ["cluster-eu","cluster-us","cluster-au"],
"clusters02": ["cluster-eu","cluster-au"]
}

我需要检查字典中是否存在任何键,并从其值中获取一个列表,然后循环元素。

在文档中,我看到了对象过滤器,但不明白它是关于什么的?https://docs.github.com/en/actions/learn-github-actions/expressions#object-过滤器

解决方案只是使用矩阵,您可以读取和解析一些文件,并将结果放入矩阵中。

jobs:
matrix-clusters:
name: "set matrix of selected cluster"
outputs:
matrix-one: ${{ steps.set-matrix.outputs.matrix-one }}
matrix-stop-all: ${{ steps.set-matrix.outputs.matrix-stop-all }}
steps:
- uses: actions/checkout@v3
- id: set-matrix
run: |
TASK_ONE=$(jq -c --join-output 
'[to_entries[]|select(.value.env=="${{ github.event.inputs.choice }}")|.value]' 
.github/workflows/envs/${{ github.event.inputs.cluster_env || 'stg' }}.json)
echo "matrix-one=$TASK_ONE" >> $GITHUB_OUTPUT
TASK_STOP_ALL=$(jq -c --join-output 
'[to_entries[]|select(.value.skipgroupstop!=true)|.value]' 
.github/workflows/envs/${{ github.event.inputs.cluster_env || 'stg' }}.json)
echo "matrix-stop-all=$TASK_STOP_ALL" >> $GITHUB_OUTPUT

最新更新