我正在处理一个涉及多个API密钥的Node项目。我将API密钥存储在配置文件config.js
中。然后,我将config.js
添加到.gitignore
中,以使API密钥不会在公共存储库中显示。但是,当我尝试使用GitHub操作进行npm run build
时,会出现导入错误,因为config.js
不在存储库中。
我可以在GitHub上以某种方式“模拟” config.js
吗?还是应该设置一个从其他位置下载config.js
的操作?有没有更好的方法?
我正在使用GitHub的样板nodejs.yml
:
name: Node CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [8.x, 10.x, 12.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm install, build, and test
run: |
npm install
npm run build --if-present
env:
CI: true
我对CI / CD相当陌生。预先感谢!
更新:我使用下面接受的答案解决了这个问题。我将config.js
存储在GitHub上的秘密变量config
中。然后,我在工作流程中添加了一个步骤,可在需要之前创建config.js
:
...
- name: create config.js
run: echo '${{ secrets.config }}' > path/to/config.js
- name: npm install, build, and test
...
答案 0 :(得分:1)
您可以使用所需的名称(例如'my_secret_key
')将密钥声明为secret in GitHub Actions
另请参阅“ Creating and using secrets (encrypted variables)”
您可以在您的config.js
中将所说的键称为变量$my_secret_key
。