Rails测试在gitlab管道中不起作用

时间:2019-03-04 08:57:41

标签: ruby-on-rails testing gitlab pipeline gitlab-ci

在我想将其推入主测试栏后,我想自动对其进行测试。

测试代码的阶段如下:

SELECT *
FROM table_name tb1
WHERE tb1.Modified_Date = (SELECT MAX(tb2.Modified_Date)
FROM table_name tb2
WHERE tb2.primary_key = tb1.primary_key)

这是管道的输出:

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

我不明白为什么无法识别“ &&”之后的命令。

1 个答案:

答案 0 :(得分:1)

要在docker中运行多个命令,请使用/bin/bash -c和分号;,或者您也可以在Docker容器中使用can pipe命令

您可以尝试以下操作:

docker run --rm $CONTAINER_IMAGE:test /bin/bash -c "RAILS_ENV=test && rails test RAILS_ENV=test"