如何获取所有 Travis CI 环境变量(不包括系统默认值)?

Dam*_*n W 5 travis-ci docker

我想传递docker run我在 Travis Web UI 中配置的所有环境变量。

我可以运行env > .env将它们保存到文件中,然后通过--env-file .env.

不幸的是,这也会覆盖系统问题,例如PATH干扰容器的问题。

我可以过滤掉PATHusing env | grep -vE "^(PATH=)" > .env,但我想知道是否有办法只获取 Travis 的?

这是我的 .travis.yml:

language: bash
sudo: required
services:
  - docker
before_install:
  - env | grep -vE "^(PATH=)" > .env
install:
  - docker build -t mycompany/myapp .
script:
  - docker run -i --env-file .env mycompany/myapp nosetests
after_success:
  - echo "SUCCESS!"
Run Code Online (Sandbox Code Playgroud)

Mar*_*ung 0

我不建议传递所有环境变量,但是如果您通过在它们前面添加前缀来将它们列入白名单,例如,TRAVIS_您可以执行以下操作:

export TRAVIS_WUT=foo
export TRAVIS_FOO=asdf
docker run $(printenv | grep -E '^TRAVIS_' | sed 's/TRAVIS_/-e /g')
  # would run -> docker run -e FOO=asdf -e WUT=foo something
Run Code Online (Sandbox Code Playgroud)