事实证明,使用Travis-CI比起一开始看起来要容易得多。您只需编写使用docker exec
调用的常规构建脚本即可。执行某些较为棘手的第三方服务集成可能需要专门的shell脚本,例如下面的codecov.io示例。
示例:
sudo: required
language: cpp
services:
- docker
before_install:
- docker pull user/build:latest
- docker run -it -d --name build user/build bash
- docker exec build git clone https://github.com/user/product.git
script:
- docker exec build cmake -H/product -B/_build
- docker exec build cmake --build /_build
- docker exec build cmake --build /_build --target documentation
- docker exec build cmake --build /_build --target run-tests
after_success:
- docker exec build bash /project/codecov.sh
codecov.sh:
#!/usr/bin/env bash
cd /project && \
bash <(curl -s https://codecov.io/bash) \
-f /_build/app.coverage.txt \
-t uuid-project-token \
-X gcov \
-X coveragepy \
-X search \
-X xcode \
-R /project \
-F unittests \
-Z
sudo: false
,构建始终在 Docker 容器中进行。 - набиячлэвэлиsudo: false
我们无法控制所使用的镜像。它只选择基于容器的构建基础设施。而且,基于 Docker 的构建仅在sudo: required
下可用。 - Vahid