如何使用GitHub操作导入私有数据?

时间:2019-08-30 04:23:22

标签: node.js github github-actions

我正在处理一个涉及多个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
  ...

1 个答案:

答案 0 :(得分:1)

您可以使用所需的名称(例如'my_secret_key')将密钥声明为secret in GitHub Actions
另请参阅“ Creating and using secrets (encrypted variables)

您可以在您的config.js中将所说的键称为变量$my_secret_key