使用从外壳设置的变量的GitHub操作 [英] GitHub Actions to use variables set from shell

查看:20
本文介绍了使用从外壳设置的变量的GitHub操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目标:

在GitHub操作中,从外壳动态定义我的提交消息:

      - name: Commit changes
        uses: EndBug/add-and-commit@v7
        with:
          message: "added on $(date -I)"
但是,我似乎必须先定义一个环境变量,然后才能使用它。我正在关注How do I set an env var with a bash expression in GitHub Actions?和其他帮助文件,比如this,但仍然不知道如何使用我之前定义的环境变量。这就是我尝试的方法,但失败了:

      - name: Checkout repo
        uses: actions/checkout@v2
      - run: |
          touch sample.js
          echo "today=$(date -I)" >> $GITHUB_ENV

      - name: Commit changes
        uses: EndBug/add-and-commit@v7
        with:
          message: "added on ${today}"

如何使其正常工作?

推荐答案

如果要在其他任务的参数中引用使用$GITHUB_ENV环境文件设置的环境变量集,则需要使用工作流语法来访问顶级env键的相应键,如下所示:

- name: Commit changes
  uses: EndBug/add-and-commit@v7
  with:
    message: "added on ${{env.today}}"

您可以从正在运行的任务内部将其作为标准环境进行访问,例如:

- name: Show an environment variable
  run: |
      echo "today is $today"
在该示例中,表达式$today由外壳展开, 它查找名为today的环境变量。你也可以 写入:

- name: Show an environment variable
  run: |
      echo "today is ${{env.today}}"
在这种情况下,扩展将由GitHub的工作流执行 引擎run命令执行之前,因此外壳程序将看到 看起来像echo "today is 2021-07-14"的文字命令。


您可以使用output parameters完成类似的操作,如下所示:

- name: "Set an output parameter"
  id: set_today
  run: |
    echo "::set-output name=today::$(date -I)"

- name: Commit changes
  uses: EndBug/add-and-commit@v7
  with:
    message: "added on ${{steps.set_today.outputs.today}}"
使用输出参数更加精细(因为它们是 由步骤ID限定),并且它们不会出现在环境中 您的任务启动的进程的百分比。

这篇关于使用从外壳设置的变量的GitHub操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆