![](/img/trans.png)
[英]How to embed environment variables in a docker image in azure devops pipeline?
[英]How to read environment variables in Script step in Azure DevOps?
我正在嘗試在 Azure DevOps Build 管道中運行此命令:
npm run coverage
此命令需要 2 個可用的環境變量才能成功完成。
早些時候,我使用的是NPM 任務,但我們無法在該任務中傳遞環境變量。
- task: Npm@1
displayName: npm test
inputs:
command: custom
workingDir: $(Build.SourcesDirectory)
verbose: false
customCommand: run coverage
因此,我將其更改為腳本步驟,如下所示:
- script: 'npm run coverage'
workingDirectory: $(Build.SourcesDirectory)
displayName: 'npm test'
env:
CLASS_PATH: './test/mock/'
MONGO_PATH: '../../../services/mock/'
但它沒有拾取這 2 個 env 變量,並且任務失敗導致整個構建失敗。
我還嘗試添加一個腳本任務,該任務在運行覆蓋命令之前設置這兩個環境變量,如下所示:
- script: |
export CLASS_PATH='./test/mock/'
export MONGO_PATH='../../../services/mock/'
echo $CLASS_PATH
echo $MONGO_PATH
它打印設置的環境變量,但下一步是npm run coverage
沒有得到這些環境變量。
誰能幫助將這些環境變量傳遞給 npm 命令?
我的管道:
trigger:
branches:
include:
- 'master'
variables:
class_path: './test/mock/'
mongo_path: '../../../services/mock/'
pool: 'self-hosted'
stages:
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build
pool:
name: 'self-hosted'
steps:
- script: |
export CLASS_PATH='./test/mock/'
export MONGO_PATH='../../../services/mock/'
echo $CLASS_PATH
echo $MONGO_PATH
- script: 'npm run coverage'
workingDirectory: $(Build.SourcesDirectory)
displayName: 'npm test'
env:
CLASS_PATH: $(class_path)
MONGO_PATH: $(mongo_path)
在 Azure Devops 中,管道變量也顯示為環境變量。
對於下一個示例,先前的變量將作為 $(class.path) 和 $CLASS_PATH 可用
variables:
- name: class.path
value: '/some/path'
steps:
- task: Npm@1
displayName: npm test
inputs:
command: custom
workingDir: $(Build.SourcesDirectory)
verbose: false
customCommand: run coverage
現在可能會發生某些任務無法正確獲取變量,在這種情況下您可以像這樣使用:
variables:
- name: class.path
value: '/some/path'
- name: mongo.path
value: '/some/path'
steps:
- script: 'npm run coverage'
workingDirectory: $(Build.SourcesDirectory)
displayName: 'npm test'
env:
CLASS_PATH: $(class.path)
MONGO_PATH: $(mongo.path)
注意:腳本任務通常不需要顯式環境變量映射,因為它可以立即訪問作為環境變量的變量。
下一步是檢查您的 npm 腳本,它可能會正確獲取變量。
請看一下這個問題來解決 npm 關於環境變量的細節在 npm-scripts 中傳遞環境變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.