rails 测试在 gitlab 管道中不起作用
rails tests not working in gitlab pipeline
在我想自动测试我的 rails 代码之后,将它推送到 master 我的测试不是 运行。
我测试代码的阶段如下所示:
test_code:
stage: test_code
script:
- docker pull $CONTAINER_IMAGE:test || true
- docker build -f Dockerfile.test --cache-from $CONTAINER_IMAGE:test --tag $CONTAINER_IMAGE:test .
- docker run --rm $CONTAINER_IMAGE:test rails db:migrate RAILS_ENV=test && rails test RAILS_ENV=test
- docker push $CONTAINER_IMAGE:test
这是管道的输出:
$ docker run --rm $CONTAINER_IMAGE:test rails db:migrate RAILS_ENV=test && bundle exec rails test
== 20181005152311 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0014s
== 20181005152311 CreateUsers: migrated (0.0014s) =============================
/bin/sh: eval: line 86: rails: not found
ERROR: Job failed: exit code 127
我不明白为什么不能识别“&&”后面的命令。
要 运行 docker 中的多个命令,请使用 /bin/bash -c
和分号 ;
或者您也可以在 Docker 容器中使用管道命令
您可以尝试这样的操作:
docker run --rm $CONTAINER_IMAGE:test /bin/bash -c "RAILS_ENV=test && rails test RAILS_ENV=test"
在我想自动测试我的 rails 代码之后,将它推送到 master 我的测试不是 运行。
我测试代码的阶段如下所示:
test_code:
stage: test_code
script:
- docker pull $CONTAINER_IMAGE:test || true
- docker build -f Dockerfile.test --cache-from $CONTAINER_IMAGE:test --tag $CONTAINER_IMAGE:test .
- docker run --rm $CONTAINER_IMAGE:test rails db:migrate RAILS_ENV=test && rails test RAILS_ENV=test
- docker push $CONTAINER_IMAGE:test
这是管道的输出:
$ docker run --rm $CONTAINER_IMAGE:test rails db:migrate RAILS_ENV=test && bundle exec rails test
== 20181005152311 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0014s
== 20181005152311 CreateUsers: migrated (0.0014s) =============================
/bin/sh: eval: line 86: rails: not found
ERROR: Job failed: exit code 127
我不明白为什么不能识别“&&”后面的命令。
要 运行 docker 中的多个命令,请使用 /bin/bash -c
和分号 ;
或者您也可以在 Docker 容器中使用管道命令
您可以尝试这样的操作:
docker run --rm $CONTAINER_IMAGE:test /bin/bash -c "RAILS_ENV=test && rails test RAILS_ENV=test"