Github Eylemlerinde sırları nasıl kullanırım?

Oct 06 2020

Bunun gerçekten aptalca bir soru olduğunu hissediyorum ama çözemiyorum. Ben var gerçekten basit node.js projeyi kurmak bir olan API_KEYbir sır olarak.

Gelen nodejs eylem yml ben şu var:

    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_KEYgörünmüyorexport ben beklediğiniz gibi o ne zaman ne de gösterir etmek console.log(process.env).

Belgelere göre , bu olduğu gibi çalışmalıdır. Gerçekten basit bir şeyi kaçırdığımı hissediyorum.

Bu, bu yığın aşımı sorusunda önerildiği gibi bir çatal değildir .

Düğüm komut dosyamda bulunan API_KEY'i almak için neyi kaçırıyorum?

Yanıtlar

1 BenjaminW. Oct 06 2020 at 22:04

Ortam değişkenleri üç düzeyde tanımlanabilir:

  • Küresel olarak: adı verilen üst düzey bir harita env
  • İş başına düzeyinde: içinde jobs..env
  • Adım başına düzeyde: içinde jobs..steps.env

Tercih, mevcut en spesifik değişkene verilir. Örneğin:

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"

Bir adımda bir ortam değişkenini dinamik olarak ayarlamak ve daha sonraki adımlar için kullanılabilir hale getirmek için bir ortam dosyası kullanmanız gerekir (bu, son zamanlarda ortam değişkenleri için artık kullanılmayan iş akışı komutlarını kullanmaktan değiştirilmiştir ):

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

Eski, artık kullanımdan kaldırılan yöntem, bunu şu şekilde ayarlayacaktır:

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

ancak bu artık bir kullanımdan kaldırma uyarısını tetikliyor.