【问题标题】:Cross-platform scripting with Jenkins使用 Jenkins 编写跨平台脚本
【发布时间】:2014-03-17 18:07:26
【问题描述】:

我在我们的组织中经常使用 Jenkins 来构建和部署项目。我有一组 bash 脚本经过微调,可以模块化并可重用于多个项目。这些是由 Jenkins 在部署作业期间触发的。

当部署环境从 Linux 更改为 Windows 时,问题就来了。 bash 脚本不再是一个选项(在多个/随机部署机器上安装 cygwin 也不是一个选项)。我可以批量重写所有 bash 脚本,但这会导致双重维护和小错误滑入任一环境。

我正在寻找的是一种跨平台编写部署脚本的能力,以及 Jenkins 可以开箱即用地支持的能力,而无需在目标环境中预先安装一些东西。想到 ANT 是因为 Jenkins 可以在 Windows 或 Linux 上运行 Ant 而无需安装任何东西,但是按照“声明性”语言的定义,Ant 缺少我编写部署脚本所需的一切。

我有什么选择?

【问题讨论】:

  • 我不能给你一个全面的答案。但我猜你要么必须重写你的脚本来批处理或安装一些东西。但是这里有一个相关主题的线程:stackoverflow.com/questions/2637214/…

标签: bash batch-file ant jenkins cross-platform


【解决方案1】:

很遗憾,没有原生的跨平台脚​​本语言。但这并不意味着我们不能拼凑出我们自己糟糕的解决方案。比如混合的 Bastch 或 Batsh...

混合 A:

date > /dev/null # >nul <nul & goto Batch
#Bash
echo Hello World
exit 0

:Batch
@echo off
echo Hello World
exit /b 0

混合 B:

: '"
:: Batch
@echo off
echo Hello World
exit /b 0
"'

#Bash
echo Hello World
exit 0

这仍然需要重复逻辑,但至少它们共享同一个文件。请注意,扩展名必须是 .bat 或 .cmd 文件才能在 Windows 上正确运行。

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2021-11-30
    • 2015-07-29
    相关资源
    最近更新 更多