DaoCloud CI 使用基于 Docker 的容器技术来运行您的测试任务,确保您的任务和其他租户的任务完全隔离并互不干扰。
您可以通过在代码根目录放置一个 daocloud.yml
文件来配置您的测试任务。
image: daocloud/ci-golang:1.4
services:
- mongodb
- mysql
- redis
env:
- MYENV = "hello"
install:
- echo $MYENV
- echo "This is an install segment"
- echo "Here, we usually run scripts to setup a base environment"
- echo "For customized base image, you need to install git here unless you have git installed in your base image"
- echo "e.g., apt-get install -y git-core"
before_script:
- echo $MYENV
- echo "This is an before_script segment"
- echo "Here, we usually run scripts to prepare our test"
script:
- echo $MYENV
- echo "This is an script segment"
- echo "Run test cases here"
- echo ""
- echo "Below shows how to use services, mongodb/mysql/redis are the hostnames of services"
- ping -c 2 mongodb
- ping -c 2 mysql
- ping -c 2 redis
install
脚本。before_script
脚本。script
脚本。DaoCloud 为您准备了多种编程语言的测试环境(这些测试环境是基于官方的 ubuntu:14.04
镜像),目前支持的编程语言包括:
为了方便您准备测试环境,我们还提供了数据储存服务:
同时,我们还支持自定义的测试镜像,让您更方便配置个性化的测试环境,不过,目前自定义的镜像必须符合以下条件:
测试镜像代表了您的测试任务运行的环境。
# The build image you want to use; you can select one from DaoCloud support list.
image: daocloud/ci-golang:1.4
您可以从下面的列表(DaoCloud 准备好的镜像)中选择您希望的运行环境(该列表正在不断完善中):
当然您可以使用自己托管在 Docker Hub 上的镜像,比如
您可以指定测试任务运行时依赖的服务,指定服务后,测试任务可以用 docker link
一致的方式去访问它。比如您指定要使用 mysql
,那么您可以使用 mysql
作为主机名来访问服务节点, 或者通过环境变量 MYSQL_PORT_3306_TCP_ADDR
来访问。
# List of services you want to use during your test.
services:
- mysql
- mongodb
目前 DaoCloud CI 支持的服务及访问方式如下表所示(该列表正在不断完善中):
Version:MySQL 5.5
Docker Link Alias: mysql
Host: mysql
Port: 3306
UserName: root
Password: 不设密码
Default Instance: test
环境变量:
Version:Redis 2.8
Docker Link Alias: redis
Host: redis
Port: 6379
环境变量:
Version:MongoDB 2.6
Docker Link Alias: mongodb
Host: mongodb
Port: 27017
环境变量:
# Environment variables
env:
- GOPATH = /go
- MY_ENV = abc
您可以通过 install
标签来指定您对镜像的初始化脚本
# Scripts you want to run before cloning the repo
install:
- sudo apt-get update
- sudo apt-get -y install bzr
您可以通过 before_script
标签来为您的测试做准备
# Scripts you want to run before your test
before_script:
- go get github.com/onsi/ginkgo
- go get labix.org/v2/mgo
您可以通过 script
标签来指定您的运行的测试任务
# Scripts you want to run for the test
script:
- go test your-code