yaml - 每个 bash 步骤是否都会创建一个新的 shell 环境?
问题描述
- job: build_package
dependsOn: test
displayName: Build Package
pool:
vmImage: 'ubuntu-18.04'
steps:
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add Conda to PATH
- bash: conda env create -f environment.yml --name $(Agent.Id)
displayName: Create Conda Environment
- bash: |
source activate $(Agent.Id)
conda build . --output-folder ./
displayName: Build Package In the Build Directory
上面有 3 个 bash 步骤,我想知道创建 bash 步骤的最佳做法是什么,我应该将它们分组在同一个 bash 步骤下还是像上面一样进行 3 个单独的 bash 步骤?
用多个脚本创建一个 bash 并将这些脚本放入不同的 bash 步骤有什么区别?每个 bash 步骤都会创建一个新的 shell 环境吗?
解决方案
每个步骤/任务都会创建新的会话,因此会丢失一些数据,例如会话级别的环境变量。
所以如果脚本是相关的,你可以在一个任务中运行。它还可以节省时间。
推荐阅读
- typescript - TypeScript 可选属性赋值初始化
- ios - 扩展 JSONDecoder 以允许基于端点以不同方式序列化模型
- javascript - 您将如何使用 map 从对象数组中的每个对象中查找特定值
- cplex - Cplex:无法获取决策变量的值
- ruby - 使用 RVM 安装 ruby 时的编译器问题:检查 C 编译器是否工作...否
- javascript - 在 Heroku 上部署 Node.js 应用程序时出现 403 错误
- perl - perl:同时使用 map 和 foreach?
- reactjs - 单击链接时,activeClassName 不起作用
- google-cloud-platform - Google Cloud IoT Core,通过 SSH 连接到设备
- angular - 日期选择器变量