您可以设置在整个工作流程中可用的环境变量,例如在这篇文章中。
(来自链接帖子上的解决方案)
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 }}"
Run Code Online (Sandbox Code Playgroud)
我有一个使用矩阵策略的工作流程,如果我更改它,我必须在每个作业中更新它。我尝试将其设为全局变量,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
但这给出了错误:
工作流程无效。.github/workflows/main.yml(行:12,列:9):不需要序列 .github/workflows/main.yml(行:19,列:15):无法识别的命名值:'env'。位于表达式内的位置 1:env.FRUIT
我想做的事情可以通过其他方式实现吗?
如果您使用的是bash,您可以创建一个常规数组(如在 bash 中)以在您的步骤或 github 表达式中使用 -
例子:
env:
MAIN_BRANCHES: ("develop" "main")
Run Code Online (Sandbox Code Playgroud)
现在您可以在任何步骤中使用该数组。在 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}"
...
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到完整的工作流程文件 - gitversion.yml
| 归档时间: |
|
| 查看次数: |
12966 次 |
| 最近记录: |