首页 > 解决方案 > 每个 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 环境吗?

标签: yamlazure-pipelines

解决方案


每个步骤/任务都会创建新的会话,因此会丢失一些数据,例如会话级别的环境变量。

所以如果脚本是相关的,你可以在一个任务中运行。它还可以节省时间。


推荐阅读