GitLab CI无法安装/使用PhantomJS

时间:2016-05-16 01:30:30

标签: continuous-integration phantomjs gitlab gitlab-ci

我目前正在使用Flask开发一个Web应用程序,并且需要在其中一个测试中使用PhantomJS。我将GitLab用于远程git存储库,并使用Gi​​tLab CI作为CI工具。

不幸的是,我似乎无法获得GitLab CI的共享跑步者来安装和运行PhantomJS。它的输出:

Failed PhantomJS Run Screenshot

我的.gitlab-ci.yml

的摘录
image: python:2.7.11

before_script:
  - ...
  - mkdir ~/tmp
  - pushd ~/tmp
  - wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
  - tar xf $PHANTOM_JS.tar.bz2
  - mv $PHANTOM_JS phantomjs
  - ln -s ~/tmp/phantomjs/bin/phantomjs /usr/bin/phantomjs
  - phantomjs --version
  - popd
  - ...

$Phantom_JS指的是PhantomJS的特定版本。

有谁知道解决方案?或者有没有其他方法来安装和运行PhantomJS?

谢谢。

2 个答案:

答案 0 :(得分:2)

似乎是我自己的错误。我之前没有发现Gitlab CI是在64位机器上构建的。我下载了32位版本,不知怎样对跑步者不起作用。

答案 1 :(得分:1)

我在ruby图像Dockerfile中做了类似的事情,并且可以确认有时它不会下载预期的zip文件。

RUN cd /tmp && \
    curl -OL https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2 && \
    tar xjf phantomjs-1.9.8-linux-x86_64.tar.bz2 phantomjs-1.9.8-linux-x86_64/bin/phantomjs && \
    mv phantomjs-1.9.8-linux-x86_64/bin/phantomjs /usr/local/bin && \
    rm -r phantomjs-1.9.8-linux-x86_64*

据我所知,bitbucket网址重定向到经过身份验证的S3网址,有时是404网址。

我已经使用docker run -it IMAGE /bin/bash在本地运行图片,并在每次构建之后验证是否使用which phantomjsphantomjs --version安装了phantomjs。如果安装没有成功,我会再次构建容器。

我注意到在浏览器中点击下载URL(将在本地下载文件)在运行容器构建之前,增加了成功的可能性。我很乐意看到一个“更好”的解决方案。