我可以使用cygwin编写hudson构建步骤的脚本吗?

时间:2009-04-08 20:36:06

标签: bash continuous-integration cygwin hudson

我尝试执行以下操作:

#!C:\cygwin\bin\bash.exe
ls ${WORKSPACE}

但是没有找到ls(即使它在Windows路径上)。有没有办法设置它?

更新:换句话说,我希望能够设置一个使用cygwin bash的构建步骤而不是像this page这样的windows cmd,向您展示如何使用Python。< / p>

7 个答案:

答案 0 :(得分:5)

请将cygwin的{​​{1}}目录放在bin

如果您不知道该怎么做(PATH - &gt; Control Panel - &gt; System - &gt; Advanced),请参阅:{{ 3}}

答案 1 :(得分:4)

那个shell脚本有两个错误:hash-bang行应该是“#!/ bin / bash”,$ {WORKSPACE}不是shell变量。 Hudson有一堆自己的变量,这些变量在你指定运行的命令中扩展(即当你在web gui中添加命令时)。

如果要在Cygwin命令行上运行Hudson构建步骤,则需要确定Hudson运行的命令以及在哪个目录中。

要提供更具体的答案,您需要向我们展示您的项目配置方式以及您希望单独运行的步骤。

答案 2 :(得分:2)

如果cygwin的bin文件夹在您的路径中,以下内容适用于我:

#!/bin/sh
ls ${WORKSPACE}

我发现除非你重新启动服务器,否则Hudson不会选择环境变量。

答案 3 :(得分:1)

您可能想尝试提供ls的完整路径

/cygdrive/c/cygwin/bin/ls

答案 4 :(得分:1)

另一件似乎有用的事情就是使用它:

#!C:\cygwin\bin\bash.exe
export PATH=$PATH:/usr/bin
ls

但是不必修改每个脚本的路径会很好。

答案 5 :(得分:0)

你有没有想过power shell?尽管我喜欢cygwin,它总是有点片状,PowerShell是一个坚固的全功能shell在windows上,另一个选项是Windows Services for UNIX它给你korn shell或c shell不如bash但它得到了完成工作

答案 6 :(得分:0)

您需要将--login(又名-l)选项传递给bash,以便它会获取Cygwin的/etc/profile并设置PATH变量正确。这将导致当前目录更改为默认的“home”,但您可以在运行CHERE_INVOKING之前将环境变量1设置为bash -l,如果您将保留在当前目录中需要保留它。