【问题标题】:GitHub Actions If contains function not working with env.VARIABLEGitHub Actions 如果包含不适用于 env.VARIABLE 的函数
【发布时间】:2020-04-15 21:23:51
【问题描述】:

我已经设置了一个环境变量:

echo "::set-env name=PROJECT_TO_TEST::$(sh scripts/test.sh)"

test.sh 只是回显“SomeString, MoreString”

我确实看到 PROJECT_TO_TEST 变量通过以下操作正确设置:

echo "env.PROJECT_TO_TEST = ${{ env.PROJECT_TO_TEST }}"

输出“env.PROJECT_TO_TEST = SomeString, MoreString”

在接下来的一步中,我正在执行 if 检查以查看 PROJECT_TO_TEST 变量是否包含一些字符串,如下所示:

- name: Conditionally Run
  if: contains('${{ env.PROJECT_TO_TEST }}', 'SomeString')
  run: |
    echo "SomeString did exist and should run"
- name: Conditionally Run
  if: contains('${{ env.PROJECT_TO_TEST }}', 'ShouldNotRun')
  run: |
    echo "ShouldNotRun"  

在这种情况下,应该只打印“SomeString did exist and should run”,但也打印“ShouldNotRun”。

完整代码在这里:https://github.com/gomfucius/github-actions/blob/master/.github/workflows/pullrequest.yml

说明问题的工作流程:https://github.com/gomfucius/github-actions/runs/590320131

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    if 中不需要${{}},因为它可以直接访问env 上下文。

      - run:  echo PROJECT_TO_TEST=SomeString,MoreString >> $GITHUB_ENV
      - name: Conditionally Run
        if:   contains(env.PROJECT_TO_TEST, 'SomeString')
        run:  echo "SomeString did exist and should run"
      - name: Conditionally Run
        if:   contains(env.PROJECT_TO_TEST, 'ShouldNotRun')
        run:  echo "ShouldNotRun"
    

    【讨论】:

      【解决方案2】:

      Github 已弃用“set-env”。

      set-env 命令已禁用。请升级到使用环境文件或通过将ACTIONS_ALLOW_UNSECURE_COMMANDS 环境变量设置为true 来选择不安全的命令执行。更多信息请见:https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

      您应该改用以下语法:

         - name: set env variable
           run: |
             echo "PROJECT_TO_TEST=$(sh scripts/test.sh)" >> $GITHUB_ENV
        
         # Then you can use it in your if statement like so 
         - name: Conditionally Run
           if: contains(env.PROJECT_TO_TEST, 'SomeString')
           run: |
             echo "let's run"
      

      【讨论】:

        猜你喜欢
        • 2023-02-14
        • 2014-05-30
        • 2016-04-02
        • 2022-12-12
        • 1970-01-01
        • 1970-01-01
        • 2021-06-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多