Travis CI构建失败

时间:2016-06-01 01:41:13

标签: build-process travis-ci

我遇到了Travis CI的问题 - 我推送的所有提交都失败并出现同样的错误:

  

0.06s $ curl -sSL" http://llvm.org/apt/llvm-snapshot.gpg.key" | sudo -E apt-key add -   gpg:找不到有效的OpenPGP数据。   命令" curl -sSL" http://llvm.org/apt/llvm-snapshot.gpg.key" | sudo -E apt-key add - "失败并在2期间退出。   您的构建已停止。

我尝试重建先前成功构建的提交,并发生相同的错误。有关如何解决问题的任何建议吗?

4 个答案:

答案 0 :(得分:15)

大约2天前,

http://llvm.org/apt/llvm-snapshot.gpg.key正在返回404。从http://llvm.org/apt/链接的homepage会返回404。

IRC #llvm频道中的主题提及:

  

APT回购临时关闭。检查ML以获取最新更新。

ML announcement

  

TL; DR:APT repo因负载/流量过大而关闭

     

最近我们意识到APT repo会产生近95%的I / O.   llvm.org和超过40%的网络带宽。在过去的2   几个星期llvm.org(svn,git,bugzilla)的主要服务都很严重   整体连接问题。

     

我们决定临时关闭APT回购,看看这是否有帮助。   请继续关注更新。

答案 1 :(得分:2)

临时解决方案

由于llvm服务器仍处于运行状态,我正在使用Ubuntu软件包中提供的clang。

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
      #- llvm-toolchain-precise-3.7
    packages:
      - libgnome-keyring-dev
      #- clang-3.7
      - clang

完整示例:https://github.com/sqlectron/sqlectron-gui/blob/master/.travis.yml#L35

唯一的问题是安装版本3.4或3.5。这看起来比llvm包中最新的慢得多。

答案 2 :(得分:1)

llvm服务器仍然关闭。但是,rusthttps://github.com/rust-lang/rust)背后的人非常好主意是使用Docker解决此问题。

请在此处查看.travis.yml文件: https://github.com/rust-lang/rust/commit/b1651fb4d2c0349ccca108b8d24210d688507936

您可以在此处找到travis构建: https://travis-ci.org/rust-lang/rust/builds/134924068

我使用优秀的结果将Docker合并到我的构建中,但我花了几天时间才这样做。您可以在此处找到我的方法:文件/Dockerfile/.travis.yml

中的https://github.com/fuzzylite/fuzzylite/tree/master

以及此处的结果:https://travis-ci.org/fuzzylite/fuzzylite/builds/137058927

答案 3 :(得分:0)

here是一个如何解决此问题并使用clang 3.7的示例。

sudo: required
dist: trusty

env:
  global:
    - LLVM_VERSION=3.7.0
    - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz

before_install:
  - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
  - mkdir $HOME/clang+llvm
  - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang+llvm --strip-components 1
  - export PATH=$HOME/clang+llvm/bin:$PATH

我对clang 3.5 / 3.6 / 3.7 / 3.8做同样的事情并且有效。

我呼叫clang++而不是clang++-3.7或其他任何内容 - 它会被添加到路径中。