Рубрики
Без рубрики

3 шага для обработки сайтов рабочего процесса GitHub

Краткое введение в рабочий процесс и секреты GitHub. Теги с JavaScript, Github, Firebase, секретами.

Что случилось с секретами?

Привет Developer Pal!, Рад видеть вас здесь.

Секреты (aka Окружающая среда vars В других контекстах из GitHub) можно использовать по-разному, в основном они являются Ключ/значение Пары, которые позволяют взаимодействию с вашим приложением, сайтом, блогем и т. Д.

Для Секрет Работать, у вас всегда будет видимость для Ключ Но Ценность останутся скрытым до конца времени (или пока вы не обновите его вручную, до вас)!

Для этого поста 3 шагов мы собираемся настроить Github Workflow ( PullRequest и Merge ) для доступа к Github Secrets и позволяя развертывать сайт.

Покажите мне код

Шаги должны быть ориентированы на:

  1. Создание секретов на Github
  2. Подключение секретов GitHub к местному репо для тестирования
  3. Подключение секретов 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”