GitHub Actions 是 GitHub 的自动化工具,它可以帮助开发者直接在 GitHub 仓库中自动执行软件开发工作流程。如果您需要从 VERSION
文件加载环境变量到 GitHub Action,可以通过编写工作流程步骤来实现。下面是一个如何做到这一点的示例:
首先,您需要在仓库中有一个 VERSION
文件,例如:
shell1.0.0
然后,您可以在 .github/workflows
目录下的一个工作流程 YAML 文件中使用如下步骤:
yamlname: Load VERSION file as environment variable on: [push] jobs: load-version: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Load VERSION run: echo "VERSION=$(cat VERSION)" >> $GITHUB_ENV # 下面的步骤是为了展示如何使用加载的环境变量,不是必须的 - name: Print VERSION run: echo "The version is $VERSION"
在这个工作流程中:
-
on: [push]
表明这个工作流程会在每次向仓库推送代码时触发。 -
jobs:
下定义了工作流程中的任务,这里只有一个任务load-version
。 -
runs-on: ubuntu-latest
指定了运行该任务的虚拟环境是最新版本的 Ubuntu。 -
steps:
下面有几个步骤。-
Checkout repository
步骤会检出代码到运行工作流程的虚拟环境中。 -
Load VERSION
步骤使用 shell 命令读取VERSION
文件的内容,并将其输出格式为VERSION=<内容>
的形式追加到$GITHUB_ENV
环境变量文件中。这样做会让VERSION
这个环境变量在后续的所有步骤中都可以访问。 -
Print VERSION
步骤是一个示例步骤,它会打印出之前加载的VERSION
环境变量的值。这个步骤证明了环境变量已经被成功设置并可以在工作流程中使用。
-
以上步骤展示了如何从一个文件中读取内容并设置为 GitHub Actions 的环境变量。这样设置后,您就可以在之后的步骤中使用这个变量,例如用于构建过程、部署或者其他需要该版本信息的场景。在GitHub Actions中,您可以使用各种操作(Actions)来读取文件内容并设置环境变量。如果您有一个名为VERSION
的文件,其中包含版本信息,并希望建立一个工作流程,可以从该文件加载环境变量,您可以使用read-file
动作配合echo
命令以及GITHUB_ENV
文件来设置环境变量。
以下是一个工作流程的例子,展示了如何从VERSION
文件加载环境变量:
yamlname: Load Version as Env Var on: [push] jobs: set-env-var: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Read VERSION file id: version run: echo "VERSION=$(cat VERSION)" >> $GITHUB_ENV - name: Use VERSION run: echo "The version is $VERSION"
在上面的工作流程中:
- 当有push事件发生时,工作流程会被触发。
set-env-var
工作定义了工作流程中的任务。Checkout repository
步骤使用了actions/checkout@v2
动作,这个动作会检出您的仓库到运行工作流程的GitHub Action的运行器上。Read VERSION file
步骤定义了一个名为version
的步骤,其中运行了一个shell命令,使用echo
和重定向操作符>>
将VERSION
文件的内容写入到$GITHUB_ENV
环境变量文件中。这会创建或更新一个名为VERSION
的环境变量。Use VERSION
步骤演示了如何在后续步骤中使用VERSION
环境变量。
请注意,这个VERSION
环境变量在被设置后,在当前工作流程的后续步骤中都可用。如果您的VERSION
文件包含复杂的数据,例如多行或需要解析的特定格式,您可能需要使用更复杂的shell命令或者编写一个脚本来解析数据并设置环境变量。