6

我目前正在 github 上开发一个与 Raspberry Pi 相关的项目,我想将它附加到某种 CI 系统上,这样贡献者就可以在无需构建电路的情况下查看他们是否会破坏事物(该项目涉及 GPIO 引脚)。TravisCI 似乎是显而易见的选择,因为它与 github 很好地集成,但我对其他人持开放态度

环顾四周后,似乎要做的事情是在我的 Pi 机器上本地运行 TravisCI 服务器(而不是尝试在 Travis 云中设置某种模拟环境),但是我不确定我如何指出我本地服务器上的 github 项目页面?谁能解释我是怎么做到的?

4

3 回答 3

2

您是否有必要在您的个人硬件上运行该项目?如果您对 Raspberry Pi 的代码编译和测试感到满意,您可以通过以下方式进行:

汇编

在 Travis 上交叉编译。我得到了以下代码:

Dockerfile

FROM mitchallen/pi-cross-compile

# Switch into our apps working directory
WORKDIR /build
COPY . /build

# The base image has more examples how to use make or CMake for the project, directly
# calling the cross-compiler, is the minimal example here.
RUN ["/pitools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc",\
  "-o", "hello", "hello.cpp"]

.travis.yml

language: cpp

services:
  - docker

before_install:
  - docker build -t me/image .

script:
  # One of those lines is necessary otherwise travis runs 'rake' by default.
  - true
  - echo "Success"

hello.cpp

#include <stdio.h>

int main (int argc, char **argv) {
    printf("Hello, world!\n");
    return 0;
}

测试

在 travis 上使用 Qemu。这是使用此工具的示例

于 2018-12-09T16:39:31.423 回答
0

我曾经用依赖fake-rpi项测试 Travis CI 上的代码。picamera当然,它无法伪造实际的相机,但依赖于 Travis CI的非硬件测试picamera可以完成。fake-rpi我想fake-rpi也可以在RPi.GPIO.

于 2019-10-21T00:20:46.563 回答
0

我不确定如何将 github 项目页面指向我的本地服务器?谁能解释我是怎么做到的?

这在范围上有点模糊,所以现在我必须向你指出一些到目前为止我发现对找出类似的东西很有帮助的部分。当我找到了最好的课程来绘制我自己与 Travis CI 的 RPi 相关集成时,我可能会用更多的细节和更少的手来更新它。

GitHub 上的提示可以通过他们的webhook API 来通知另一台服务器,这就是它的travis-ci.org做法/完成方式,travis-ci.com现在使用GitHub 应用程序(我上次检查过)订阅(甚至可以通过一些列出的 webhook)到存储库事件。

Travis CI 自述文件状态...

#travis-listener

每当推送提交或打开拉取请求时, travis-listener都会从 GitHub 接收通知。然后将它们推送到 RabbitMQ 以供其他应用程序处理。


...该项目涉及 GPIO 引脚...

如果您打算以自动化方式在 RPi 上运行代码,我建议您执行某种形式的安全列表,例如。提交签署公钥和/或用户名;换句话说,减轻一些可能来自rouge pull request 的恶作剧。

获得一个好的烟雾探测器可能是一个好主意,并且设计的东西也尽可能在打开状态下失败。

于 2019-05-09T07:38:50.487 回答