Что случилось с секретами?
Привет Developer Pal!, Рад видеть вас здесь.
Секреты
(aka Окружающая среда vars
В других контекстах из GitHub) можно использовать по-разному, в основном они являются Ключ/значение
Пары, которые позволяют взаимодействию с вашим приложением, сайтом, блогем и т. Д.
Для Секрет
Работать, у вас всегда будет видимость для Ключ
Но Ценность
останутся скрытым до конца времени (или пока вы не обновите его вручную, до вас)!
Для этого поста 3 шагов мы собираемся настроить Github Workflow
( PullRequest и Merge ) для доступа к Github Secrets
и позволяя развертывать сайт.
Покажите мне код
Шаги должны быть ориентированы на:
- Создание секретов на Github
- Подключение секретов GitHub к местному репо для тестирования
- Подключение секретов GitHub для удаленного репо для рабочего процесса GitHub, чтобы ударить
1. Создание секретов на Github
Может быть, «тяжелый» шагов; Вам просто нужно перейти к репо, где вы хотите добавить данные, перейти к Настройки
и ищите вариант Секреты
Совет : Хотя вы можете добавить все, что Имя и Стоимость Вы хотите, лучше добавить соответствующую Имя , так как это Ключ
что-то значимое имеет решающее значение.
Примечание : Помните, что Ценность скрыто сразу после того, как вы сохраняете Секрет
И не будет доступно снова! , вы можете редактировать, но не увидим это снова, будьте осторожны.
Для этого постоплавания давайте возьмем Vue приложение + Firebase Проект, эти Секреты
будет выглядеть что-то подобное:
2. Подключение секретов GitHub к местному репо для тестирования
В поисках последовательного проекта необходимо убедиться, что значения Секреты
хранится на Github
работаем в вашем приложении.
Смотреть ниже, что Ключи
точно такие же присутствующие на шаге выше, принимая Firebase В качестве примера здесь, поскольку он дает набор значений для идентификации требуемого проекта, и его легко запустить и тестировать, но такая же логика должна применяться с помощью клавиш любой другой платформы
# ---------------------------------------------------------- # .env file # ---------------------------------------------------------- VUE_APP_FIREBASE_API_KEY='not-set-yet' VUE_APP_FIREBASE_APP_ID='not-set-yet' VUE_APP_FIREBASE_AUTH_DOMAIN='not-set-yet' VUE_APP_FIREBASE_DATABASE_URL='not-set-yet' VUE_APP_FIREBASE_MESSAGING_SENDER_ID='not-set-yet' VUE_APP_FIREBASE_PROJECT_ID='not-set-yet' VUE_APP_FIREBASE_STORAGE_BUCKET='not-set-yet' # ----------------------------------------------------------
Запуск этого проекта локально должен работать для вас, как и ожидалось, если это так, вы можете быть уверены что Секреты
Удаленно синхронизируются с местными.
Примечание : Если вы не знакомы с модами .env, может быть, это Ссылка может быть полезным!
3. Подключение секретов GitHub для удаленного репо для рабочего процесса GitHub, чтобы ударить
Теперь вы могли бы удивляться, Как я могу использовать эти секреты в моем рабочем процессе GitHub?
Хорошо, довольно легко выполнить использование действия GitHub; Если вы не знакомы с этим, возможно, вы можете взглянуть на это Документация Короче говоря, вам просто нужно включить Ямл
к .Github/Workflows
Папка в вашем корневом репо, и добавьте команды, которые вы хотите повлиять на поведение вашего приложения, например, при нажатии на новый Потянуть запрос
или Слияние
к конкретной ветви.
Для этого постоплавания действия для нового Потянуть запрос
Запускается имитирование проекта HiMick FireBase Hosted Project, сохраняйте фокус на env
Вход:
# This file was auto-generated by the Firebase CLI # https://github.com/firebase/firebase-tools name: Deploy to Firebase Hosting on PR 'on': pull_request jobs: build_and_preview: env: VUE_APP_FIREBASE_API_KEY: ${{ secrets.VUE_APP_FIREBASE_API_KEY }} VUE_APP_FIREBASE_AUTH_DOMAIN: ${{ secrets.VUE_APP_FIREBASE_AUTH_DOMAIN }} VUE_APP_FIREBASE_DATABASE_URL: ${{ secrets.VUE_APP_FIREBASE_DATABASE_URL }} VUE_APP_FIREBASE_PROJECT_ID: ${{ secrets.VUE_APP_FIREBASE_PROJECT_ID }} VUE_APP_FIREBASE_STORAGE_BUCKET: ${{ secrets.VUE_APP_FIREBASE_STORAGE_BUCKET }} VUE_APP_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VUE_APP_FIREBASE_MESSAGING_SENDER_ID }} VUE_APP_FIREBASE_APP_ID: ${{ secrets.VUE_APP_FIREBASE_APP_ID }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: npm ci && npm run build - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: '${{ secrets.GITHUB_TOKEN }}' firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT }}' projectId: secret-project-test env: FIREBASE_CLI_PREVIEWS: hostingchannels
Как показано выше, перед запуском шагов Checkout/Deploy, env
запись берет колесо; Что происходит вот то, что рабочий процесс GitHub объявит и инициализирует на его объеме Секреты
уже определен в Github Repo! Так что все хранится вместе через 3 разных места!
-
Секреты
Вы определяете на Github -
Ключ/Значения
Вы используете локально (рекомендуется файл .env) -
Github Workflow
Используется для действия GH (PR
,Merge
и т. Д.)
Изменение в Секреты
Не вонсируйте всю логику, редактируя значение, до тех пор, пока он является действительным, беспрепятственно запустится для ваших DEV и пользователей, экономят время и избегая некоторых головных болей.
Примечание : Вы можете найти больше информации о действиях подержанных шагов здесь Действия/Оформление @ v2 А вот FirebaseExteded/Действие-хостинг-развертывание @ v0
Заключение
Как показано выше, сохраняя Секреты
или Env Переменные
не так сложно при последующем этапах интеграции; Может быть, вы могли бы иметь лучший способ сделать это, давайте обсудим в потоке ниже!
Спасибо за прочтение!
Оригинал: “https://dev.to/crisarji/3-steps-for-handling-github-workflow-secrets-26om”