Как установить переменную окружения в процессе node.js при развертывании с действием github - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь построить конвейер CI для моего node.js сервера, используя действия github.

Мне просто нужно решить одну проблему. Мне нужно установить переменную окружения, чтобы мой node.js сервер мог получить доступ к переменной env через process.env

Ниже приведен файл рабочего процесса действия github.

name: Build and Deploy to GKE

on:
  pull_request:
    branches:
      - master

# Environment variables available to all jobs and steps in this workflow
env:
  ENGINE_API_KEY: ${{ secrets.ENGINE_API_KEY }}

jobs:
  setup-build-publish-deploy:
    name: Setup, Build, Publish, and Deploy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Apollo Schema Update
        env:
          ENGINE_API_KEY: ${{ secrets.ENGINE_API_KEY }}
        run: |
          sudo npm install
          sudo npm install -g apollo
          sudo npm run dev &
          sleep 3
          sudo apollo service:push --serviceURL=http://auth-cluster-ip-service --serviceName=auth --tag=master --endpoint=http://localhost:3051

Я попытался объявить Переменная среды и уровень рабочего процесса и уровень задания, но когда я console.log(process.env.ENGINE_API_KEY), он возвращает undefined.

Я также попытался ENGINE_API_KEY=$ENGINE_API_KEY npm run dev & вместо npm run dev &. Это работает на моем MacBook, но с действием GitHub он по-прежнему возвращает undefined.

(я сохранил ENGINE_API_KEY в настройках -> секретно. Работал отлично для других переменных)

1 Ответ

0 голосов
/ 28 апреля 2020

Создайте файл .env, который может быть прочитан вашим сервером узлов, и таким образом передайте свой секретный файл хранилища. Это должно быть сделано после шага оформления заказа:

    - name: create env file
      run: |
        touch .env
        echo ENGINE_API_KEY =${{ secrets.ENGINE_API_KEY }} >> .env
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...