在工作流级别的环境变量中使用数组?



你可以在整个工作流程中设置env变量,例如在这篇文章中。

(从链接文章的解决方案)

name: Git Pull Request Workflow
on:
workflow_dispatch:
pull_request:
branches:
- master
env:
one: 1
two: zwei
three: tres
jobs:
first-job:
runs-on: ubuntu-latest
steps:
- run: |
echo "${{ env.one }}"
echo "${{ env.two }}"
echo "${{ env.three }}"

我有一个使用矩阵策略的工作流,如果我改变它,我必须在每个工作中更新它。我试着让它像上面那样成为一个全局变量:

name: Model Multipliers
on:
push:
branches:
- main

env:
FRUIT: ["Apple", "Pear", "Banana", "Orange"]
jobs:
ssql-get:
runs-on: ubuntu-latest
strategy:
matrix:
FRUIT: ${{ env.FRUIT }}
name: Get data
steps:
- name: Checkout cum-rev repo

但是这给出了错误:

.github/workflows/main。yml(行:12,Col:9):序列不是预期的。github/workflows/main。(第19行,Col: 15):无法识别的命名值:'env'。位于位置1在表达式内:env。水果

我正在尝试做的事情是否可以通过其他方式实现?

如果您使用的是bash,您可以创建一个常规数组(像在bash中一样)在您的步骤或github表达式中使用-

的例子:

env:
MAIN_BRANCHES: ("develop" "main")

现在您可以在任何步骤中使用该数组。在run属性中,作为"${MAIN_BRANCHES}"的环境变量,或在if条件中使用Github表达式语法。

...
- name: Tag build
if: ${{ github.event_name == 'push' && contains(env.MAIN_BRANCHES, steps.calculate_changed_services.outputs.diff_dest) }}
run: echo "my main branches ${MAIN_BRANCHES}"
...

你可以在这里找到完整的工作流文件- gitversion.yml

如果你删除值中的双引号,它应该工作

相关内容

  • 没有找到相关文章

最新更新