在travis yml配置中从json文件设置全局环境变量?

时间:2019-03-26 14:39:55

标签: node.js sh travis-ci

我试图从发布标签触发时,从json文件中设置以下env变量。

.travis.yml

env:
  global:
    - PACKAGE_VERSION=$(if [ -n "$TRAVIS_TAG" ]; then node -p require('./meta.json').deploy_version; else echo "next"; fi)

但是Travis在构建时会出现以下错误:

$ export PACKAGE_VERSION=$(if [ -n "$TRAVIS_TAG" ]; then node -p require('./meta.json')
/home/travis/.travis/functions: eval: line 104: unexpected EOF while looking for matching `)'
/home/travis/.travis/functions: eval: line 105: syntax error: unexpected end of file

meta.json

{
  "version": "3.0.0",
  "deploy_version": "v3"
}

并且我希望从标签/版本触发时将PACKAGE_VERSION设置为v3,否则将PACKAGE_VERSION设置为next

感谢您给予的任何帮助!

1 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题,可以通过将节点位移动到自己的脚本中来使其正常工作,如下所示:

文件ver.js

const {version} = require("./package.json");
console.log(version);

在travis.yml

env:
  global:
    - PACKAGE_VERSION=$(node ver -p)