gpt4 book ai didi

travis-ci - before_install 在构建矩阵中

转载 作者:行者123 更新时间:2023-12-04 02:26:11 26 4
gpt4 key购买 nike

我有一个需要为多个平台构建的程序。现在我正在做类似的事情:

matrix:
include:
env: PLATFORM=foo
env: PLATFORM=bar
env: PLATFORM=baz
before_install:
- install foo toolchain
- install bar toolchain
- install baz toolchain
script:
- make PLATFORM=$PLATFORM

我宁愿不安装所有三个工具链,因为我只会使用一个;当上游可怕的工具链分发站点出现故障时,它会浪费资源并且还会破坏所有构建。

但是,我无法找到在构建矩阵中获得 before_install 的方法——文档对于精确语法非常不清楚。这是可能的,如果是,如何?

最佳答案

在这个特定示例中,您可以简单地利用您已经创建的环境变量来动态扩展安装命令。

matrix:
include:
env: PLATFORM=foo
env: PLATFORM=bar
env: PLATFORM=baz
before_install:
- install $PLATFORM toolchain
script:
- make PLATFORM=$PLATFORM

对于其他可能会在搜索更复杂场景时发现此问题的人,例如 supporting ancient platforms inconsistent with modern travis environments ,我使用专用脚本管理矩阵差异安装。
.
├── src
│   └── Foo.php
├── tests
│   ├── FooTest.php
│   └── travis
│   ├── install.bash
│   ├── install.legacy.bash
│   ├── script.bash
│   └── script.legacy.bash
└── .travis.yml

然后为环境提供相应的脚本。

language: php
matrix:
include:
- php: "nightly"
env: LEGACY=false
- php: "7.0"
env: LEGACY=false
- php: "5.3.3"
env: LEGACY=true
install:
- if $LEGACY; then source ./tests/travis/install.legacy.bash;
else source ./tests/travis/install.bash; fi
script:
- if $LEGACY; then source ./tests/travis/script.legacy.bash;
else source ./tests/travis/script.bash; fi

相当丑陋,所以我希望 travis 有时间提供官方解决方案。

关于travis-ci - before_install 在构建矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com