Github Actions에서 비밀을 어떻게 사용하나요?

Oct 06 2020

나는 이것이 정말 어리석은 질문이라고 생각하지만 그것을 이해하지 못하는 것 같습니다. 나는 한 정말 간단한 Node.js를 프로젝트 설정 A를 API_KEY비밀로합니다.

에서 nodejs 행동 YML I는 다음이있다 :

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }}
      env:  
        API_KEY: ${{ secrets.API_KEY }} 
    - run: export 
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test

API_KEYexport내가 예상했던대로 표시되지 않으며 내가 console.log(process.env).

문서에 따르면 이것은있는 그대로 작동합니다. 정말 간단한 것을 놓치고있는 것 같습니다.

이것은 이 stackoverflow 질문에서 제안한 포크가 아닙니다 .

내 노드 스크립트에서 사용 가능한 API_KEY를 얻으려면 무엇을 놓치고 있습니까?

답변

1 BenjaminW. Oct 06 2020 at 22:04

환경 변수는 세 가지 수준에서 정의 할 수 있습니다.

  • 전역 :라는 최상위지도 env
  • 작업 별 수준 : jobs..env
  • 단계별 수준 : in jobs..steps.env

사용 가능한 가장 구체적인 변수가 선호됩니다. 예를 들면 :

env:
  VAR: I am global
jobs:
  job1:
    steps:
      - run: echo "$VAR" # "I am global" job2: env: VAR: I am on the job level steps: - run: echo "$VAR"  # "I am on the job level"
      - env:
          VAR: I am on the step level
        run: echo "$VAR" # "I am on the step level" - run: echo "$VAR"  # "I am on the job level"

단계에서 환경 변수를 동적으로 설정하고 추가 단계에서 사용할 수 있도록하려면 환경 파일 을 사용해야 합니다 ( 최근 에 환경 변수에 대해 더 이상 사용되지 않는 워크 플로 명령 사용에서 변경됨 ).

steps:
  - name: Set the variable
    run: echo "foo=bar" >> "$GITHUB_ENV" - name: Print the variable run: echo "$foo"  # bar

오래되고 이제는 더 이상 사용되지 않는 방법은 다음과 같이 설정합니다.

run: echo "::set-env name=foo::bar"

그러나 이것은 이제 사용 중단 경고를 트리거합니다.