在macOS和Jenkins上集成sass

时间:2014-06-09 11:36:59

标签: ruby jenkins gem sass

我在我的mac build代理上安装了sass。附上批准:这是从我的机器输出

ep@ep2:~$ sass -v
Sass 3.3.8 (Maptastic Maple)
ep@ep2:~$ sass --help
Usage: sass [options] [INPUT] [OUTPUT]

Description:
Converts SCSS or Sass files to CSS.

Options:
-s, --stdin                      Read input from standard input instead of an input file
    --trace                      Show a full traceback on error
    --unix-newlines              Use Unix-style newlines in written files.
    --scss                       Use the CSS-superset SCSS syntax.
    --watch                      Watch files or directories for changes.
                                 The location of the generated CSS can be set using a colon:
                                   sass --watch input.sass:output.css
                                   sass --watch input-dir:output-dir
    --update                     Compile files or directories to CSS.
                                 Locations are set like --watch.

并将其写入bash_profile:

 Users/ep/.rvm/bin:~/.gem/ruby/1.8/bin

当我尝试在詹金斯执行我的工作时,它失败了

14:18:34     /bin/sh -c sass\ -f\ -C\ ${INPUT_FILE_PATH}\ ${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.css
14:18:34 /bin/sh: sass: command not found
14:18:34 Command /bin/sh failed with exit code 127

我做了一些调查,并将此属性添加到jenkins节点propey并检查用户,用户运行脚本它与我安装gem的人相同。

如何解决?

1 个答案:

答案 0 :(得分:0)

当Jenkins执行构建脚本时,工具sass可能不在shell PATH中。

你应该:

  • 通过提供工具的完整路径或
  • 来运行该工具
  • 修改PATH环境变量以包含该工具的安装目录。

请注意,通过更改shell初始化文件来修改PATH通常是使用Jenkins执行此操作的错误方法。当Jenkins执行一个shell时,它不是一个交互式登录shell,它们通常会跳过初始化文件,如.profile或.bashrc或bash_profile。详细信息可以在shell手册页中找到。

最好将PATH添加到Jenkins配置,以便主配置(如果作业在主服务器上执行)或从服务器配置(如果作业在从服务器上执行)。在配置中选中标题为"环境变量"的框。并为所需的环境变量添加名称和值。

使用命令env开始构建脚本可能并不是一个坏主意,它会打印所有环境变量。通常它会使这样的调试问题变得更加容易。