首页 > 解决方案 > 在 travis yml 配置中从 json 文件设置全局环境变量?

问题描述

当从发布标签触发时,我试图从 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

元.json

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

我想在从标签/发布触发时PACKAGE_VERSION设置为,否则设置为.v3PACKAGE_VERSIONnext

提前感谢您提供的任何帮助!

标签: node.jsshtravis-ci

解决方案


我被困在同一个问题上,能够通过将节点位移动到它自己的脚本中来使其工作,如下所示:

文件版本.js

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

在 travis.yml

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

推荐阅读