Невозможно установить переменные среды в Chrome background.js сценарий. Есть ли способ жестко закодировать переменные среды env в определенные файлы с помощью действий Github?

#google-chrome-extension #environment-variables #azure-web-app-service

#google-chrome-extension #переменные среды #azure-web-app-service

Вопрос:

Спасибо за любую помощь, которую может предоставить сообщество!

  • ОБОБЩЕННЫЙ ВОПРОС
    • Я хочу жестко закодировать переменные среды в файлы javascript во время процесса сборки (или что-то подобное) в зависимости от того, в какую ветку GitHub передается код с помощью действий GitHub.
    • Текущий процесс сборки отсутствует. Как я могу создать процесс сборки, который выполнит эту задачу?
    • Есть ли альтернативы или лучший подход, чем создание процесса сборки? Есть ли какое-либо действие GitHub, которое может преобразовывать файлы для достижения того же результата?
  • ПРЕДЫСТОРИЯ
    • Мой проект представляет собой расширение Chrome, которое очищает ряд веб-сайтов для получения данных.
    • При загрузке расширения в manifest.json указывается фоновый скрипт
      • Затем фоновый скрипт отправляет запрос XMLHttpRequest на наш сервер, чтобы получить несколько других скриптов с нашего сервера, которые затем активируются в Chrome с помощью eval().
      • Сценарии возвращаются с помощью request responseText и анализируются в JSON перед передачей в функцию eval() .
    • Наш сервер размещен в службе приложений Azure.
    • У нас есть две службы приложений для этого проекта, представляющие разные среды — разработку и производство
    • Фоновый сценарий, указанный manifest.json, ищет сценарии в одном из трех разных мест — localhost, наш сервер разработки или наш производственный сервер
      • В настоящее время мы должны жестко закодировать это значение перед развертыванием на сервере приложений
  • ПРОБЛЕМА
    • В нашем фоновом сценарии я хотел бы использовать переменную среды для указания местоположения сценариев, которые изменяются в зависимости от того, в какой ветке / службе приложений github находится код.
    • Фоновый сценарий и сценарии, извлекаемые фоновым сценарием, не могут получить доступ к переменным среды, установленным в конфигурации службы приложений
    • Сценарии возвращаются в фоновый сценарий в виде текста. Все эти сценарии выполняются на локальном компьютере, на котором установлено расширение Chrome, а не в службе приложений.
  • РЕШЕНИЕ
    • Я думал подойти к проблеме аналогично тому, как я смог указать переменные среды на основе ветвей для проекта React.
      • В рабочем процессе Github определите, в какую ветку передается
      • Используйте env-cmd, чтобы указать набор переменных среды для использования в процессе сборки
      • env-cmd фактически жестко кодирует правильные переменные в коде во время процесса сборки
    • Проблема с этим решением заключается в том, что расширение Chrome не имеет процесса сборки, подобного приложению React, поэтому у меня нет механизма для использования env-cmd для указания переменных,

Комментарии:

1. Пожалуйста, обратитесь к переменным среды GitHub по умолчанию

2. Спасибо за ваш ответ, Харшита. Я не пытаюсь установить переменную среды для использования в рабочем процессе действий GitHub, а скорее хочу установить переменные среды в фактической сборке моей кодовой базы с помощью рабочего процесса действий GitHub. Я уже делал это раньше в проекте React с использованием env-cmd, к сожалению, в моем проекте расширения Chrome нет процесса сборки, как описано в основном сообщении. Я пытаюсь выяснить, могу ли я создать свой собственный процесс сборки для выполнения этой задачи или есть альтернативное решение.