Travis CI构建失败

13
我在使用Travis CI时出现了问题 - 我推送的所有提交都失败并显示相同的错误:

0.06秒$ 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。 您的构建已停止。

我尝试重新构建之前成功构建的提交,但是同样出现了相同的错误。有什么建议可以解决这个问题吗?

Travis正在通过普通的HTTP获取密钥并无条件地信任它,不错。 - Zanchey
有人知道检查 LLVM apt 库何时恢复的好方法吗? - Chris Beck
LLVM代码库又回来了。 - maxcnunes
4个回答

15
自从2天前,http://llvm.org/apt/llvm-snapshot.gpg.key 返回404错误。并且从他们的主页链接的http://llvm.org/apt/ 也返回404错误。 在IRC上的#llvm频道中的话题提到: “APT仓库暂时关闭了。检查ML获取最新更新。” 在 ML公告 中: "APT仓库由于负载/流量过大而被关闭" 我们最近意识到APT仓库在llvm.org上产生了几乎95%的I/O和超过40%的网络带宽。在过去的两个星期里,llvm.org上的主要服务(svn,git,bugzilla)遇到了整体连接性方面的严重问题。 我们决定暂时关闭APT仓库以查看是否有所帮助。请关注更新。

2
有没有其他的方式来在构建机器上安装新的clang和llvm呢? - Dan M.

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包中可用的最新版本要慢得多。


1
llvm服务器仍然无法连接。不过,来自rust背后人们的一个非常好的想法是使用Docker来解决这个问题。请查看此处的.travis.yml文件:https://github.com/rust-lang/rust/commit/b1651fb4d2c0349ccca108b8d24210d688507936。您可以在此处找到travis构建:https://travis-ci.org/rust-lang/rust/builds/134924068
我使用 Docker 将其整合到我的构建中,效果非常好,但是花费了我几天的时间。你可以在这里找到我的方法:https://github.com/fuzzylite/fuzzylite/tree/master,文件为 /Dockerfile/.travis.yml 结果在这里:https://travis-ci.org/fuzzylite/fuzzylite/builds/137058927

0

这里是一个示例,展示如何解决这个问题并使用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或其他什么 - 它被预置到了PATH中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接