你可以在整个工作流程中设置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
如果你删除值中的双引号,它应该工作