Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

Использование сред для развертывания

Среды можно настроить с помощью правил защиты и секретов. Задание рабочего процесса, ссылающееся на среду, должно соответствовать любым правилам защиты среды перед запуском или доступом к секретам среды.

Среды, секреты среды и правила защиты среды доступны в общедоступных репозиториях для всех продуктов. Для доступа к средам, секретам сред и ветвям развертываний в частных или внутренних репозиториях необходимо использовать GitHub Pro, GitHub Team или GitHub Enterprise. Для доступа к другим правилам защиты среды в частных или внутренних репозиториях необходимо использовать GitHub Enterprise.

Знакомство со средами

Среды используются для описания общего целевого объекта развертывания, такого как production, staging или development. Когда рабочий процесс GitHub Actions выполняет развертывание в среде, эта среда отображается на главной странице репозитория. Дополнительные сведения о просмотре развертываний в средах см. в разделе Просмотр журнала развертывания.

Среды можно настроить с помощью правил защиты и секретов. Если задание рабочего процесса ссылается на среду, это задание не будет запускаться до тех пор, пока не будут выполнены все правила защиты среды. Задание также не может получить доступ к секретам, определенным в среде, до тех пор, пока не будут выполнены все правила защиты среды.

Правила защиты среды

Правила защиты среды требуют выполнения определенных условий, прежде чем задание, ссылающееся на среду, сможет продолжить работу. Вы можете использовать правила защиты среды, чтобы требовать утверждения вручную, откладывать задания или ограничивать среду определенными ветвями.

Обязательные рецензенты

С помощью обязательных рецензентов вы можете требовать, чтобы задания рабочего процесса, ссылающиеся на среду, утверждались конкретным пользователем или командой. Вы можете перечислить до шести пользователей или групп в качестве рецензентов. Рецензенты должны иметь по крайней мере доступ на чтение в репозитории. Только один из обязательных рецензентов должен утвердить задание, чтобы оно могло продолжить работу.

Дополнительные сведения о проверке заданий, ссылающихся на среду с необходимыми рецензентами, см. в разделе Проверка развертываний.

Таймер ожидания

Таймер ожидания можно использовать для задержки задания на определенный промежуток времени после первоначальной активации задания. Время указывается в минутах и должно быть целым числом от 0 до 43 200 (30 дней).

Ветви развертывания

С помощью ветвей развертывания можно ограничить ветви, которые могут развертываться в среде. Ниже приведены варианты ветвей развертывания для среды.

  • Все ветви. Все ветви в репозитории могут развертываться в среде.

  • Защищенные ветви. В среде могут развертываться только ветви с включенными правилами защиты ветвей. Если правила защиты ветви не определены ни для одной ветви в репозитории, то могут развертываться все ветви. Дополнительные сведения о правилах защиты ветвей см. в разделе Сведения о защищенных ветвях.

  • Выбранные ветви. В среде могут развертываться только ветви, чьи имена соответствуют указанным шаблонам имен.

    Например, если вы указываете правило ветви развертывания releases/*, в среде могут развертываться только ветви, имена которых начинаются с releases/. (Подстановочные знаки не будут сопоставляться с /. Чтобы сопоставить ветви, начинающиеся с release/ и содержащие дополнительную косую черту, используйте release/*/*.) Если вы добавите main в качестве правила ветви развертывания, ветвь с именем main также может быть развернута в среде. Дополнительные сведения о параметрах синтаксиса для ветвей развертывания см. в документации Ruby File.fnmatch.

Секреты среды

Секреты, хранящиеся в среде, доступны только заданиям рабочих процессов, ссылающимся на среду. Если среда требует утверждения, задание не сможет получить доступ к секретам среды, пока один из обязательных рецензентов не утвердит его. Дополнительные сведения о секретах см. в разделе Зашифрованные секреты.

Примечание. Рабочие процессы, запускаемые в локальных средствах выполнения, не выполняются в изолированном контейнере, даже если они используют среды. Секреты среды должны находиться на том же уровне безопасности, что и секреты репозитория и организации. Дополнительные сведения см. в разделе Защита системы безопасности для GitHub Actions.

Создание среды

Чтобы настроить среду в репозитории, относящемся к учетной записи пользователя, необходимо быть владельцем репозитория. Чтобы настроить среду в репозитории организации, необходимо иметь доступ уровня admin.

  1. На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Параметры. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и выберите пункт Параметры.

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром. 1. На левой боковой панели щелкните Среды. 1. Выберите Новая среда. 1. Введите имя среды и нажмите кнопку Настроить среду. В именах сред регистр не учитывается. Имя среды не может превышать 255 символов и должно быть уникальным в репозитории.

  2. При необходимости укажите пользователей или команды, которые должны утверждать задания рабочих процессов, использующие эту среду.

    1. Выберите Обязательные рецензенты.
    2. Введите до 6 пользователей или команд. Только один из обязательных рецензентов должен утвердить задание, чтобы оно могло продолжить работу.
    3. Нажмите Сохранить правила защиты.
  3. При необходимости укажите время ожидания до разрешения заданиям рабочего процесса, использующим эту среду, продолжить работу.

    1. Выберите Таймер ожидания.
    2. Введите количество минут ожидания.
    3. Нажмите Сохранить правила защиты.
  4. При необходимости укажите, какие ветви можно развернуть в этой среде. Дополнительные сведения о возможных значениях см. в разделе Ветви развертывания.

    1. Выберите нужный вариант в раскрывающемся списке Ветви развертывания.
    2. Если вы указываете Выбранные ветви, введите шаблоны имен ветвей, которые хотите разрешить.
  5. При необходимости добавьте секреты среды. Эти секреты доступны только для заданий рабочих процессов, использующих данную среду. Кроме того, задания рабочих процессов, использующие эту среду, могут получить доступ к этим секретам только после выполнения всех настроенных правил (например, обязательных рецензентов). Дополнительные сведения о секретах см. в разделе Зашифрованные секреты.

    1. В разделе Секреты среды нажмите Добавить секрет.
    2. Введите имя секрета.
    3. Введите значение секрета.
    4. Щелкните Добавить секрет.

Вы также можете создавать и настраивать среды с помощью REST API. Дополнительные сведения см. в разделах Среды развертывания, Сведения о секретах в GitHub Actions, и Политики ветвей развертывания.

При запуске рабочего процесса, ссылающегося на среду, которая не существует, будет создана среда с указанным именем. В этой только что созданной среде не будет настроенных правил защиты или секретов. Любой пользователь, который может изменять рабочие процессы в репозитории, может создавать среды с помощью файла рабочего процесса, но настраивать среду могут только администраторы репозитория.

Использование среды

Каждое задание в рабочем процессе может ссылаться на одну среду. Чтобы задание, ссылающееся на среду, было отправлено в средство выполнения, должны быть выполнены все правила защиты среды. Задание может получить доступ к секретам среды только после отправки задания в средство выполнения.

Если рабочий процесс ссылается на среду, среда будет отображаться в развертываниях репозитория. Дополнительные сведения о просмотре текущих и предыдущих развертываний см. в разделе Просмотр журнала развертывания.

Вы можете указать среду для каждого задания в рабочем процессе. Для этого добавьте ключ jobs.<job_id>.environment, за которым следует имя среды.

Например, этот рабочий процесс будет использовать среду с именем production.

name: Deployment

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

При выполнении указанного выше рабочего процесса задание deployment будет применяться к любым правилам, настроенным для среды production. Например, если среда требует рецензентов, задание будет приостановлено до тех пор, пока один из рецензентов не утвердит задание.

Также можно указать URL-адрес среды. Указанный URL-адрес появится на странице развертываний для репозитория (доступ к которым можно получить, нажав Среды на странице приветствия репозитория) и в графе визуализации для запуска рабочего процесса. Если запрос на вытягивание активировал рабочий процесс, URL-адрес также отображается в виде кнопки Просмотреть развертывание на временной шкале запроса на вытягивание.

name: Deployment

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: 
      name: production
      url: https://github.com
    steps:
      - name: deploy
        # ...deployment-specific steps

Удаление среды

Чтобы настроить среду в репозитории, относящемся к учетной записи пользователя, необходимо быть владельцем репозитория. Чтобы настроить среду в репозитории организации, необходимо иметь доступ уровня admin.

При удалении среды будут удалены все секреты и правила защиты, связанные с этой средой. Все задания из удаленной среды, находившиеся в состоянии ожидания из-за правил защиты, автоматически завершатся с ошибкой.

  1. На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Параметры. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и выберите пункт Параметры.

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром. 1. На левой боковой панели щелкните Среды.

  2. Щелкните рядом со средой, которую хотите удалить.

  3. Нажмите "Я понимаю, удалить эту среду.

Вы также можете удалить среды с помощью REST API. Дополнительные сведения см. в разделе Репозитории.

Связь сред с развертываниями

При выполнении задания рабочего процесса, ссылающегося на среду, создается объект развертывания со свойством environment с названием вашей среды. По мере выполнения рабочего процесса создаются объекты состояния развертывания со свойством environment — имя вашей среды, свойством environment_url — URL-адрес среды (если указано в рабочем процессе), и свойством state — состояние задания.

Вы можете получить доступ к этим объектам с помощью REST API или API GraphQL. Вы также можете подписаться на эти события веб-перехватчика. Дополнительные сведения см. в разделах Репозитории (REST API), Объекты (API GraphQL) или События и полезные данные веб-перехватчика.

Дальнейшие действия

GitHub Actions предоставляет несколько функций для управления развертываниями. Дополнительные сведения см. в разделе Развертывание с помощью GitHub Actions.