gpt4 book ai didi

ant - 在 Jenkins 上运行时覆盖环境变量

转载 作者:行者123 更新时间:2023-12-04 14:49:30 25 4
gpt4 key购买 nike

我正在使用 PHPUnit 和 Jenkins 测试 Zend Framework 应用程序。我需要覆盖 APPLICATION_ENV使用 PHP 访问的环境变量 getenv在 PHPUnit bootstrap.php文件:

<?php

// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing'));

... use APPLICATION_ENV to pick database, configuration, etc. ...

我有两个环境: testing (对于本地机器)和 testing-ci (对于 Jenkins 机器)。如何将变量设置为 testing-ci当它在 Jenkins 运行时?有什么办法可以设置在 build.xml对于 Ant 或 Phing?

最佳答案

第一步:将环境变量添加到 Jenkins。

根据您的需要打开全局或特定于项目的配置页面并向下扫描 环境变量 部分。选中复选框并使用 添加 按钮添加键/值对。

这些将由 Jenkins 传递给您的 Ant 构建脚本。

第 2 步:将它们加载到 Ant 中。

靠近您的 Ant 顶部 build.xml脚本,使用 env 加载所有环境变量前缀,因此它们不会干扰其他属性。

<property environment="env"/>

现在所有导入的变量都可以使用 env前缀,例如 ${env.HOME} .

第 3 步:将它们传递给 PHPUnit。

假设您使用的是 <exec>运行 PHPUnit 的任务,您可以使用 <env> 将每个需要的变量传递给它子元素。
<exec taskname="test" executable="phpunit">
<env key="APPLICATION_ENV" value="${env.APPLICATION_ENV}"/>
...
</exec>

注:您可能只想尝试第一步,看看 Ant 是否会将环境变量传递给执行的子进程,但我认为其他两个步骤有助于明确其他开发人员的要求。

关于ant - 在 Jenkins 上运行时覆盖环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9128715/

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