【问题标题】:Unable to access BUILD_NUMBER environment variable of jenkins in PHP and phing无法在 PHP 和 phing 中访问 jenkins 的 BUILD_NUMBER 环境变量
【发布时间】:2017-07-31 21:55:42
【问题描述】:

通过入口点文件

我从 jenkins 调用一个 php 脚本,使用“执行 shell”部分 -

php entry.php branch_name_${branch_name} deployment_group_${deployment_group} rollback_${rollback} last_successful_revision_${last_successful_revision} sanity_check_duration_start_time_delay_sec_${sanity_check_duration_start_time_delay_sec} sanity_check_duration_end_time_delay_sec_${sanity_check_duration_end_time_delay_sec}

我尝试在那里访问 jenkins 内部版本号,但它不可用 -

$build_number = exec(${BUILD_NUMBER});
file_put_contents('/home/jenkins/deployment_beta/phing/new_test_sandeepan.txt', "\n Build number is ".$build_number, FILE_APPEND);

该文件中的登录 lin 显示 -

 Build number is

通过 phing xml 文件

我也尝试在 phing xml 文件中访问它 -

<appspecFileModifications buildName="${BUILD_NUMBER}" />

这个xml文件是通过上面提到的入口文件(php脚本)调用的,像这样——

$last_output = exec("phing -q -Dbranch_name=".$branchName, $output);

我检查了其他问题,例如 - How to use jenkins to declare BUILD_NUMBER environment variable in gradle? Jenkins - How to access BUILD_NUMBER environment variable

【问题讨论】:

  • 你为什么execute 内部版本号?
  • 我应该在 exec 中添加 echo 吗?无论如何,我也在入口点 php 文件中尝试过这个 - $last_output = exec("phing -q -Dbuild_number=${BUILD_NUMBER}", $output);
  • 不,执行官没有任何意义。环境变量应该在$_ENV
  • 我尝试转储 $_ENV 变量,但它显示为空 - file_put_contents('/home/jenkins/deployment_beta/phing/new_test_sandeepan.txt', "\n Build number is ".$_ENV['BUILD_NUMBER']." and all env vars are ".print_r($_ENV,1)."\n", FILE_APPEND);。输出 - `内部版本号是,所有环境变量都是数组()`
  • 好的,我用 getent() 搞定了。谢谢!

标签: php jenkins phing


【解决方案1】:

使用 Phing,您将能够获取带有前缀 env. 的环境变量

    <appspecFileModifications buildName="${env.BUILD_NUMBER}" />

$_SERVER 中的所有变量都可以通过这种方式获得。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    相关资源
    最近更新 更多