Переменные среды для web-ext

Я использую web-ext от mozilla представить расширение для магазина аддонов Firefox. --help говорит это:

  --api-key            API key (JWT issuer) from addons.mozilla.org
                                                             [string] [required]
  --api-secret         API secret (JWT secret) from addons.mozilla.org
                                                             [string] [required]

Есть ли способ использовать переменные среды для установки значений в моей среде CI/CD?

API_KEY и API_SECRET дают мне Missing required arguments: api-key, api-secret

2 ответа

Решение

Действительно, есть, но это плохо документировано.

WEB_EXT_API_KEY=your key
WEB_EXT_API_SECRET=your secret

Я не мог понять, как применить env vars в скрипте npm, поэтому вот мое альтернативное решение, если у кого-то еще есть такая же проблема :)

.env

      WEB_EXT_API_KEY="your_api_key"
WEB_EXT_API_SECRET="your_api_secret"

скрипты /sign.js

      require('dotenv').config()
const { execSync } = require('child_process')

const run = (command) =>
  execSync(`npx ${command}`, {stdio: 'inherit'})

const parseArgs = (args) =>
  Object.keys(args).reduce(
    (result, arg) => `${result} ${arg} ${args[arg]}`
  , "")

const args = {
  "-s": "dist",
  "--api-key": process.env.WEB_EXT_API_KEY,
  "--api-secret": process.env.WEB_EXT_API_SECRET,
}

const command = `web-ext sign ${parseArgs(args)}`
run(command)

пакет.json

      {
  ...
  "scripts": {
    ...
    "sign": "node scripts/sign.js"
  },
  "devDependencies": {
    "dotenv": "^16.0.2",
    ...
  }
}

Другие вопросы по тегам