我有一个简单的工作流程:
name: Test CI
env:
path_to_watch_for_commits: 'testdir/testfile'
on:
push:
branches:
- master
paths:
- ${{ env.path_to_watch_for_commits }}
workflow_dispatch:
jobs:
build:
runs-on: ubuntu
steps:
- uses: actions/checkout@v2
Run Code Online (Sandbox Code Playgroud)
我想path_to_watch_for_commits在路径中使用变量。但这个语法是错误的。我也尝试过${{ path_to_watch_for_commits }}但$path_to_watch_for_commits没有结果。我究竟做错了什么?
Gui*_*urd 10
环境变量的命名约定解释说:
您设置的指向文件系统上某个位置的任何新环境变量都应该有一个
_PATH后缀。和default 变量是此约定HOME的GITHUB_WORKSPACE例外,因为单词“home”和“workspace”已经暗示了一个位置。
关于工作流程中不同级别环境变量的使用,以下是 WORKFLOW、JOB 和 STEP 变量的示例:
name: Example
on: [push, workflow_dispatch]
env:
WORKFLOW_VARIABLE: WORKFLOW
jobs:
test:
runs-on: ubuntu-latest
env:
JOB_VARIABLE: JOB
steps:
- name: Run Commands with various variables
if: ${{ env.WORKFLOW_VARIABLE == 'WORKFLOW' }}
env:
STEP_VARIABLE: STEP
run: |
echo "Hello World"
echo "This is the $WORKFLOW_VARIABLE environment variable"
echo "This is the $JOB_VARIABLE environment variable"
echo "This is the $STEP_VARIABLE environment variable"
Run Code Online (Sandbox Code Playgroud)
关于您希望在工作流程中实现的行为的可能性,您不能在工作流程中设置变量并将它们用作同一级别的路径,因为:
将作业发送到运行器后,变量将在运行器操作系统中替换。
解决方法可能是每次发生事件时触发工作流push,使用路径过滤器操作和 if 条件来执行特定步骤(如果它与您的路径匹配)。
这不是优化方面的最佳解决方案,但它会起作用。
| 归档时间: |
|
| 查看次数: |
7904 次 |
| 最近记录: |