Переменные среды для 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",
...
}
}