为 Azure 管道内的 conda 元数据设置内部版本号
Set build number for conda metadata inside Azure pipeline
我正在使用 bash 脚本在 Azure 管道中构建 conda pakage conda build . --output-folder $(Build.ArtifactStagingDirectory)
这就是问题所在,Conda build 使用 meta.yml 文件中的内部版本号(see here).
我能想到的解决方案是,首先,将所有文件复制到 Build.ArtifactStagingDirectory
并将 Azure 管道的 Build.BuildNumber
添加到 meta.yml 并将包构建到 Build.ArtifactStagingDirectory
(在子文件夹内)
我试图通过编写 shell 脚本来操作 Azure 管道中的 yaml 文件来避免这样做,因为它可能容易出错。有人知道更好的方法吗?很高兴在答案或评论中阅读更优雅的解决方案。
我对 Azure 管道了解不多。但一般来说,如果你想在不改变meta.yaml
的内容的情况下控制内部版本号,你可以在meta.yaml
.
中使用一个jinja
模板变量
选择一个变量名,例如CUSTOM_BUILD_NUMBER
并在 meta.yaml
:
中使用
package:
name: foo
version: 0.1
build:
number: {{ CUSTOM_BUILD_NUMBER }}
要定义该变量,您有两个选择:
使用环境变量:
export CUSTOM_BUILD_NUMBER=123
conda build foo-recipe
或
定义conda_build_config.yaml
(docs)中的变量,如下
echo "CUSTOM_BUILD_NUMBER:" >> foo-recipe/conda_build_config.yaml
echo " - 123" >> foo-recipe/conda_build_config.yaml
conda build foo-recipe
如果需要,您可以添加 if
语句,这样即使 CUSTOM_BUILD_NUMBER
未定义(改为使用默认内部版本号),配方仍然有效。
package:
name: foo
version: 0.1
build:
{% if CUSTOM_BUILD_NUMBER is defined %}
number: {{ CUSTOM_BUILD_NUMBER }}
{% else %}
number: 0
{% endif %}
我正在使用 bash 脚本在 Azure 管道中构建 conda pakage conda build . --output-folder $(Build.ArtifactStagingDirectory)
这就是问题所在,Conda build 使用 meta.yml 文件中的内部版本号(see here).
我能想到的解决方案是,首先,将所有文件复制到 Build.ArtifactStagingDirectory
并将 Azure 管道的 Build.BuildNumber
添加到 meta.yml 并将包构建到 Build.ArtifactStagingDirectory
(在子文件夹内)
我试图通过编写 shell 脚本来操作 Azure 管道中的 yaml 文件来避免这样做,因为它可能容易出错。有人知道更好的方法吗?很高兴在答案或评论中阅读更优雅的解决方案。
我对 Azure 管道了解不多。但一般来说,如果你想在不改变meta.yaml
的内容的情况下控制内部版本号,你可以在meta.yaml
.
jinja
模板变量
选择一个变量名,例如CUSTOM_BUILD_NUMBER
并在 meta.yaml
:
package:
name: foo
version: 0.1
build:
number: {{ CUSTOM_BUILD_NUMBER }}
要定义该变量,您有两个选择:
使用环境变量:
export CUSTOM_BUILD_NUMBER=123 conda build foo-recipe
或
定义
conda_build_config.yaml
(docs)中的变量,如下echo "CUSTOM_BUILD_NUMBER:" >> foo-recipe/conda_build_config.yaml echo " - 123" >> foo-recipe/conda_build_config.yaml conda build foo-recipe
如果需要,您可以添加 if
语句,这样即使 CUSTOM_BUILD_NUMBER
未定义(改为使用默认内部版本号),配方仍然有效。
package:
name: foo
version: 0.1
build:
{% if CUSTOM_BUILD_NUMBER is defined %}
number: {{ CUSTOM_BUILD_NUMBER }}
{% else %}
number: 0
{% endif %}