在 Github 工作流程中将环境变量 CI 设置为 true 的目的是什么?

gos*_*sua 6 github github-actions

我们以此工作流程为例,它基于NodeJS 启动工作流程

name: continues integration workflow
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: checkout repo
      uses: actions/checkout@v2
    - name: setup node
      uses: actions/setup-node@v1
      with:
        node-version: '13.x'
    - run: npm test
      env:
        CI: true
Run Code Online (Sandbox Code Playgroud)

设置的目的是什么CI: true

Von*_*onC 7

请注意,自 2020 年 4 月起,您将不会再看到

env:
  CI: true
Run Code Online (Sandbox Code Playgroud)

这是因为CI现在默认情况下始终设置为 true。

如前所述,这将允许脚本检查它是否在 CI/CD 环境的上下文中运行。你可以在 GitLab 中找到相同的约定

标记作业在CI环境中执行


Dan*_*nyB 4

据我所知,该CI变量的存在是为了与其他 CI 系统兼容。以下是我所了解的事实:

  1. GitHub Actions 本身没有任何用途或需要该CI变量。
  2. 其他 CI 系统(例如 Travis 和 CircleCI)始终处于设置状态CI=1
  3. 与其他系统不同,GitHub Actions 不设置CI=true,因为它不仅仅适用于 CI。相反,它设置GITHUB_ACTIONS=true.
  4. CI变量的常规用途是让您的测试和应用程序配置可以检查其存在,并在需要时执行不同的操作(例如,跳过 CI 上的某些测试,或在 CI 上配置不同的设置)。

如果您的代码和测试代码中没有CI该变量,那么您可以省略此设置并获得相同的结果。