
[英]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.