{"meta":{"title":"Хранение сведений в переменных","intro":"GitHub задает переменные по умолчанию для каждого GitHub Actions запуска рабочего процесса. Можно также задать пользовательские переменные для использования в одном рабочем процессе или нескольких рабочих процессах.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/how-tos","title":"Инструкции"},{"href":"/ru/actions/how-tos/write-workflows","title":"Написание рабочих процессов"},{"href":"/ru/actions/how-tos/write-workflows/choose-what-workflows-do","title":"Выбор рабочих процессов"},{"href":"/ru/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables","title":"Использование переменных"}],"documentType":"article"},"body":"# Хранение сведений в переменных\n\nGitHub задает переменные по умолчанию для каждого GitHub Actions запуска рабочего процесса. Можно также задать пользовательские переменные для использования в одном рабочем процессе или нескольких рабочих процессах.\n\n## Определение переменных среды для одного рабочего процесса\n\nЧтобы задать настраиваемую переменную среды для одного рабочего процесса, ее можно определить с помощью `env` ключа в файле рабочего процесса. Область настраиваемой переменной, заданной этим методом, ограничена элементом, в котором она определена. Можно определить переменные, для которых задана область:\n\n* Весь рабочий процесс с использованием [`env`](/ru/actions/reference/workflows-and-actions/workflow-syntax#env) на верхнем уровне файла рабочего процесса.\n* Содержимое задания в рабочем процессе с использованием [`jobs.<job_id>.env`](/ru/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idenv).\n* Определенный шаг задания с использованием [`jobs.<job_id>.steps[*].env`](/ru/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsenv).\n\n```yaml copy\nname: Greeting on variable day\n\non:\n  workflow_dispatch\n\nenv:\n  DAY_OF_WEEK: Monday\n\njobs:\n  greeting_job:\n    runs-on: ubuntu-latest\n    env:\n      Greeting: Hello\n    steps:\n      - name: \"Say Hello Mona it's Monday\"\n        run: echo \"$Greeting $First_Name. Today is $DAY_OF_WEEK!\"\n        env:\n          First_Name: Mona\n```\n\nДоступ к значениям переменных можно получить `env` с помощью переменных среды runner или с помощью контекстов. В приведенном выше примере показаны три пользовательских переменных, которые используются в качестве переменных среды runner в команде `echo` : `$DAY_OF_WEEK`, `$Greeting`и `$First_Name`. Значения этих переменных задаются и ограничены на уровне рабочего процесса, задания и шага соответственно. Интерполяция этих переменных происходит на средстве выполнения.\n\nКоманды в `run` шагах рабочего процесса или указанного действия обрабатываются оболочкой, используемой в средстве выполнения. Инструкции в других частях рабочего процесса обрабатываются GitHub Actions и не отправляются в средство выполнения. Вы можете использовать переменные среды выполнения или контексты в `run` шагах, но в частях рабочего процесса, которые не отправляются в средство выполнения, необходимо использовать контексты для доступа к значениям переменных. Дополнительные сведения см. в разделе [\"Использование контекстов для доступа к значениям](#using-contexts-to-access-variable-values) переменных\".\n\nТак как интерполяция переменной среды выполнения выполняется после отправки задания рабочего процесса на компьютер runner, необходимо использовать соответствующий синтаксис для оболочки, используемой в средстве выполнения. В этом примере рабочим процессом указано `ubuntu-latest`. По умолчанию средства выполнения Linux используют оболочку Bash, поэтому необходимо использовать синтаксис `$NAME`. По умолчанию средства выполнения Windows используют PowerShell, поэтому вы будете использовать синтаксис `$env:NAME`. Дополнительные сведения о оболочках см. в разделе [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsshell).\n\n## Определение переменных конфигурации для нескольких рабочих процессов\n\nМожно создавать переменные конфигурации для использования в нескольких рабочих процессах и определять их на [уровне организации](#creating-configuration-variables-for-an-organization), [репозитория](#creating-configuration-variables-for-a-repository) или [среды](#creating-configuration-variables-for-an-environment) .\n\nНапример, можно использовать переменные конфигурации, чтобы задать значения по умолчанию для параметров, передаваемых в средства сборки на уровне организации, но затем разрешить владельцам репозитория переопределить эти параметры на основе регистра.\n\nПри определении переменных конфигурации они автоматически доступны в контексте `vars` . Дополнительные сведения см. в разделе [\"Использование контекста `vars` для доступа к значениям](#using-the-vars-context-to-access-configuration-variable-values) переменной конфигурации\".\n\n### Создание переменных конфигурации для репозитория\n\nЧтобы создать секреты или переменные на GitHub для репозитория организации, необходимо иметь `write` доступ. Для репозитория личной учетной записи вы должны быть соавтором репозитория.\n\n1. На GitHubперейдите на главную страницу репозитория.\n2. Под именем репозитория щелкните **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg> Settings**. Если вкладка \"Параметры\" не отображается, выберите **раскрывающееся меню <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"More\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** и нажмите кнопку **\"Параметры**\".\n\n   ![Снимок экрана: заголовок репозитория с вкладками. Вкладка \"Параметры\" выделена темно-оранжевым контуром.](/assets/images/help/repository/repo-actions-settings.png)\n3. В разделе \"Безопасность\" боковой панели выберите **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-key-asterisk\" aria-label=\"key-asterisk\" role=\"img\"><path d=\"M0 2.75A2.75 2.75 0 0 1 2.75 0h10.5A2.75 2.75 0 0 1 16 2.75v10.5A2.75 2.75 0 0 1 13.25 16H2.75A2.75 2.75 0 0 1 0 13.25ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25Z\"></path><path d=\"M8 4a.75.75 0 0 1 .75.75V6.7l1.69-.975a.75.75 0 0 1 .75 1.3L9.5 8l1.69.976a.75.75 0 0 1-.75 1.298L8.75 9.3v1.951a.75.75 0 0 1-1.5 0V9.299l-1.69.976a.75.75 0 0 1-.75-1.3L6.5 8l-1.69-.975a.75.75 0 0 1 .75-1.3l1.69.976V4.75A.75.75 0 0 1 8 4Z\"></path></svg> Секреты и переменные**, а затем нажмите кнопку **\"Действия**\".\n4. Перейдите на вкладку **\"Переменные\".**\n\n![Скриншот страницы «Действия, секреты и переменные». Вкладка \"Переменные\" выделена темно-оранжевым цветом.](/assets/images/help/repository/actions-variables-tab.png)\n\n1. Щелкните **новую переменную** репозитория.\n2. **В поле \"Имя\"** введите имя переменной.\n3. **В поле \"Значение\"** введите значение переменной.\n4. Нажмите кнопку **\"Добавить переменную**\".\n\n### Создание переменных конфигурации для среды\n\nЧтобы создать секреты или переменные для среды в репозитории личная учетная запись, необходимо быть владельцем репозитория. Чтобы создать секреты или переменные для среды в репозитории организации, необходимо иметь `admin` доступ. Дополнительные сведения о средах см. в разделе [Управление средами для развертывания](/ru/actions/how-tos/deploy/configure-and-manage-deployments/manage-environments).\n\n1. На GitHubперейдите на главную страницу репозитория.\n2. Под именем репозитория щелкните **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg> Settings**. Если вкладка \"Параметры\" не отображается, выберите **раскрывающееся меню <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"More\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** и нажмите кнопку **\"Параметры**\".\n\n   ![Снимок экрана: заголовок репозитория с вкладками. Вкладка \"Параметры\" выделена темно-оранжевым контуром.](/assets/images/help/repository/repo-actions-settings.png)\n3. На левой боковой панели щелкните **Среды**.\n4. Щелкните среду, в которую нужно добавить переменную.\n5. В разделе **переменные среды нажмите кнопку **\"Добавить переменную****\".\n6. **В поле \"Имя\"** введите имя переменной.\n7. **В поле \"Значение\"** введите значение переменной.\n8. Нажмите кнопку **\"Добавить переменную**\".\n\n### Создание переменных конфигурации для организации\n\n> \\[!NOTE]\n> Секреты и переменные уровня организации недоступны частными репозиториями.GitHub Free Дополнительные сведения об обновлении GitHub подписки см. в разделе [Обновление плана учетной записи](/ru/billing/how-tos/manage-plan-and-licenses/upgrade-plan).\n\nПри создании секрета или переменной в организации можно использовать политику для ограничения доступа к репозиторию. Например, можно предоставить доступ ко всем репозиториям либо ограничить доступ только частными репозиториями или указанным списком репозиториев.\n\nВладельцы действий организации\" могут создавать секреты или переменные на уровне организации.\n\n1. На GitHubперейдите на главную страницу организации.\n\n2. Под именем организации щелкните **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg> Settings**. Если вкладка \"Параметры\" не отображается, выберите **раскрывающееся меню <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"More\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** и нажмите кнопку **\"Параметры**\".\n\n   ![Снимок экрана: вкладки в профиле организации. Вкладка \"Параметры\" выделена темно-оранжевым цветом.](/assets/images/help/discussions/org-settings-global-nav-update.png)\n\n3. В разделе \"Безопасность\" боковой панели выберите **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-key-asterisk\" aria-label=\"key-asterisk\" role=\"img\"><path d=\"M0 2.75A2.75 2.75 0 0 1 2.75 0h10.5A2.75 2.75 0 0 1 16 2.75v10.5A2.75 2.75 0 0 1 13.25 16H2.75A2.75 2.75 0 0 1 0 13.25ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25Z\"></path><path d=\"M8 4a.75.75 0 0 1 .75.75V6.7l1.69-.975a.75.75 0 0 1 .75 1.3L9.5 8l1.69.976a.75.75 0 0 1-.75 1.298L8.75 9.3v1.951a.75.75 0 0 1-1.5 0V9.299l-1.69.976a.75.75 0 0 1-.75-1.3L6.5 8l-1.69-.975a.75.75 0 0 1 .75-1.3l1.69.976V4.75A.75.75 0 0 1 8 4Z\"></path></svg> Секреты и переменные**, а затем нажмите кнопку **\"Действия**\".\n\n4. Перейдите на вкладку **\"Переменные\".**\n\n   ![Снимок экрана: страница \"Секреты действий и переменные\". Вкладка \"Переменные\" выделена темно-оранжевым цветом.](/assets/images/help/repository/actions-variables-tab.png)\n\n5. Щелкните **\"Создать переменную** организации\".\n\n6. **В поле \"Имя\"** введите имя переменной.\n\n7. **В поле \"Значение\"** введите значение переменной.\n\n8. В раскрывающемся списке **Доступ к репозиторию** выберите политику доступа.\n\n9. Нажмите кнопку **\"Добавить переменную**\".\n\n## Использование контекстов для доступа к значениям переменных\n\nКонтексты — это способ доступа к сведениям о запусках рабочих процессов, переменных, средах выполнения, заданиях и шагах. Для получения дополнительной информации см. [Справочник по контекстам](/ru/actions/reference/workflows-and-actions/contexts). Существует множество других контекстов, которые можно использовать для различных целей в рабочих процессах. Дополнительные сведения о том, где можно использовать определенные контексты в рабочем процессе, см. в разделе [Справочник по контекстам](/ru/actions/reference/workflows-and-actions/contexts#context-availability).\n\nДоступ к значениям переменной среды можно получить с помощью значений контекста `env` и переменных конфигурации с помощью контекста `vars` .\n\n### Использование контекста для доступа к значениям переменной `env` среды\n\nПомимо переменных среды выполнения, GitHub Actions можно задать и считывать `env` значения ключей с помощью контекстов. Переменные среды и контексты предназначены для использования в разных точках рабочего процесса.\n\n`run` Шаги в рабочем процессе или в действии, на который ссылается ссылка, обрабатываются средством выполнения. В результате вы можете использовать переменные среды выполнения здесь, используя соответствующий синтаксис оболочки, используемой в средстве выполнения, например `$NAME` оболочку Bash в средстве выполнения Linux или `$env:NAME` PowerShell в средстве выполнения Windows. В большинстве случаев можно также использовать контексты с синтаксисом `${{ CONTEXT.PROPERTY }}`для доступа к одному значению. Разница заключается в том, что контекст будет интерполирован и заменен строкой перед отправкой задания в средство выполнения.\n\nОднако переменные среды выполнения нельзя использовать в частях рабочего процесса, обрабатываемых GitHub Actions и не отправляемых в средство выполнения. Вместо этого необходимо использовать контексты. Например, условный объект, определяющий `if` , отправляется ли задание или шаг в средство выполнения, всегда обрабатывается GitHub Actions. Поэтому для доступа к значению переменной необходимо использовать контекст в `if` условном операторе.\n\n```yaml copy\nname: Conditional env variable\n\non: workflow_dispatch\n\nenv:\n  DAY_OF_WEEK: Monday\n\njobs:\n  greeting_job:\n    runs-on: ubuntu-latest\n    env:\n      Greeting: Hello\n    steps:\n      - name: \"Say Hello Mona it's Monday\"\n        if: ${{ env.DAY_OF_WEEK == 'Monday' }}\n        run: echo \"$Greeting $First_Name. Today is $DAY_OF_WEEK!\"\n        env:\n          First_Name: Mona\n```\n\nВ этом изменении предыдущего примера мы ввели условный `if` код. Теперь шаг рабочего процесса выполняется только в том случае, если для `DAY_OF_WEEK` задано значение \"Понедельник\". Доступ к этому значению выполняется от условного оператора `if` с помощью [`env` контекста](/ru/actions/reference/workflows-and-actions/contexts#env-context). Контекст `env` не требуется для переменных, на которые ссылается команда `run` . Они ссылаются как на переменные среды runner и интерполируются после получения задания средством выполнения. Однако мы могли бы выполнить интерполяцию этих переменных перед отправкой задания в средство выполнения с помощью контекстов. Результирующий результат будет одинаковым.\n\n```yaml\nrun: echo \"${{ env.Greeting }} ${{ env.First_Name }}. Today is ${{ env.DAY_OF_WEEK }}!\"\n```\n\n> \\[!NOTE]\n> Контексты обычно указываются с помощью знака доллара и фигурных скобок, как `${{ context.property }}`. В условном `if` виде `${{` и `}}` являются необязательными, но если они используются, они должны заключать весь оператор сравнения, как показано выше.\n\n> \\[!WARNING]\n> При создании рабочих процессов и действий следует всегда учитывать, может ли код выполнять ненадежные входные данные от возможных злоумышленников. Некоторые контексты следует считать непроверенными, так как злоумышленники могут вставить собственное вредоносное содержимое. Дополнительные сведения см. в разделе [Справочник по безопасному использованию](/ru/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks).\n\n### Использование контекста `vars` для доступа к значениям переменной конфигурации\n\nПеременные конфигурации можно получить к рабочему процессу с помощью `vars` контекста. Дополнительные сведения см. в разделе [Справочник по контекстам](/ru/actions/reference/workflows-and-actions/contexts#vars-context).\n\nЕсли переменная конфигурации не задана, возвращаемое значение контекста, ссылающееся на переменную, будет пустой строкой.\n\nВ следующем примере показано использование переменных конфигурации с контекстом `vars` в рабочем процессе. Каждая из следующих переменных конфигурации определена на уровне репозитория, организации или среды.\n\n```yaml copy\non:\n  workflow_dispatch:\nenv:\n  # Setting an environment variable with the value of a configuration variable\n  env_var: ${{ vars.ENV_CONTEXT_VAR }}\n\njobs:\n  display-variables:\n    name: ${{ vars.JOB_NAME }}\n    # You can use configuration variables with the `vars` context for dynamic jobs\n    if: ${{ vars.USE_VARIABLES == 'true' }}\n    runs-on: ${{ vars.RUNNER }}\n    environment: ${{ vars.ENVIRONMENT_STAGE }}\n    steps:\n    - name: Use variables\n      run: |\n        echo \"repository variable : $REPOSITORY_VAR\"\n        echo \"organization variable : $ORGANIZATION_VAR\"\n        echo \"overridden variable : $OVERRIDE_VAR\"\n        echo \"variable from shell environment : $env_var\"\n      env:\n        REPOSITORY_VAR: ${{ vars.REPOSITORY_VAR }}\n        ORGANIZATION_VAR: ${{ vars.ORGANIZATION_VAR }}\n        OVERRIDE_VAR: ${{ vars.OVERRIDE_VAR }}\n        \n    - name: ${{ vars.HELLO_WORLD_STEP }}\n      if: ${{ vars.HELLO_WORLD_ENABLED == 'true' }}\n      uses: actions/hello-world-javascript-action@main\n      with:\n        who-to-greet: ${{ vars.GREET_NAME }}\n```\n\n## Обнаружение операционной системы\n\nМожно написать один файл рабочего процесса, который можно использовать для разных операционных систем, используя `RUNNER_OS` переменную среды по умолчанию и соответствующее свойство <span style=\"white-space: nowrap;\">`${{ runner.os }}`</span>контекста. Например, следующий рабочий процесс может быть успешно запущен, если вы изменили операционную систему с `macos-latest` на `windows-latest` без необходимости изменять синтаксис переменных среды, который различается в зависимости от оболочки, используемой средством выполнения.\n\n```yaml copy\non: workflow_dispatch\n\njobs:\n  if-Windows-else:\n    runs-on: macos-latest\n    steps:\n      - name: condition 1\n        if: runner.os == 'Windows'\n        run: echo \"The operating system on the runner is $env:RUNNER_OS.\"\n      - name: condition 2\n        if: runner.os != 'Windows'\n        run: echo \"The operating system on the runner is not Windows, it's $RUNNER_OS.\"\n```\n\nВ этом примере два оператора `if` проверяют свойство `os` контекста `runner`, чтобы определить операционную систему средства выполнения.\n`if` условные условия обрабатываются GitHub Actionsтолько по шагам, в которых проверка разрешается, как `true` отправляется в средство выполнения. Здесь одна из проверок всегда будет иметь значение `true`, а другая — `false`, поэтому только один из этих шагов отправляется в средство выполнения. После отправки задания в средство выполнения выполняется шаг, а переменная среды в `echo` команде интерполируется с помощью соответствующего синтаксиса (`$env:NAME` для PowerShell в Windows, а `$NAME` также для bash и sh в Linux и macOS). В этом примере оператор `runs-on: macos-latest` означает, что будет выполняться второй шаг.\n\n## Передача значений между шагами и заданиями в рабочем процессе\n\nЕсли вы создаете значение в одном шаге задания, его можно использовать в последующих шагах того же задания, назначив значение существующей или новой переменной среды, а затем записав это значение в файл среды `GITHUB_ENV`. Файл среды может использоваться непосредственно действием или командой оболочкой в файле рабочего процесса с помощью ключевого слова `run`. Дополнительные сведения см. в разделе [Команды рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-commands#setting-an-environment-variable).\n\nЕсли вы хотите передать значение из шага одного задания в рабочем процессе в шаг другого задания в рабочем процессе, можно определить значение как вывод задания. Затем вы можете ссылаться на этот вывод задания из шага другого задания. Дополнительные сведения см. в разделе [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idoutputs).\n\n## Следующие шаги\n\nСправочные сведения см. в разделе [Справочник по переменным](/ru/actions/reference/workflows-and-actions/variables)."}