Какова цель переменной CI, установленной в true в рабочем процессе Github? - PullRequest
2 голосов
/ 31 января 2020

Давайте возьмем этот рабочий процесс в качестве примера, который основан на 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

Какова цель настройки CI: true?

Ответы [ 2 ]

2 голосов
/ 02 февраля 2020

Насколько я могу судить, переменная 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, то вы, вероятно, можете пропустить этот параметр и имеют тот же результат.

1 голос
/ 15 апреля 2020

Обратите внимание, что с апреля 2020 года , вы больше не увидите

env:
  CI: true

Это потому, что CI теперь по умолчанию всегда имеет значение true.

Как уже отмечалось, это позволит скрипту проверить, выполняется ли он в контексте среды CI / CD. Вы найдете такое же соглашение в GitLab

Отметить, что задание выполняется в среде CI

...