我是Travis CI的新手,但我已将我的Github连接到它。 我还创建了一个.travis.yml,我将语言设置为java。 我创建了一个HelloWorld.java文件并提交并将其推送到repo。
在Travis,根本没有构建。当我在设置下检查请求时,我看到提交,具有相同的状态"缺少配置",除了一个声明" Build created successfully"但当你翻过它时,它有一个红色的十字和红色覆盖。
我的.travis.yml是否缺少很多命令和脚本,因为我只设置了语言?
我的mac上安装了maven等没有任何构建系统,所以语言设置不足以满足我的想法。我需要在脚本部分添加一些内容,例如:
class ImagePicker {
let imagePicker = UIImagePickerController()
var delegate: AnyObject?
init(delegate: AnyObject?) {
self.delegate = delegate
}
func pickPhoto() {
self.imagePicker.delegate = delegate
// The line above gives an error "Cannot assign a value of type 'AnyObject?' to a value of type 'protocol<UIImagePickerControllerDelegate, UINavigationControllerDelegate>?'
delegate?.presentViewController(imagePicker, animated: true, completion: nil)
}
}
我还需要知道可以为after_success和after_faliure设置哪些设置。
谢谢, 苏海尔
答案 0 :(得分:28)
Travis CI不是构建工具。它是一个Continous Integration工具,它通常执行你在本地执行的相同构建命令,但是每次推送到GitHub后都会自动执行。
它需要一个活动的构建机制。嗯,这不完全正确,但它要求您在script:
部分指定一个有效的命令,该命令可以在尝试构建代码的Travis CI主机上执行。当命令的返回码为0时,构建被视为SUCCESS。否则,它被视为FAILURE。
(这一切都非常简化,最好是阅读Travis CI文档,也许还有一些关于Continous Integration的文档)。
简而言之:设置项目以使用Maven或Gradle或您最喜欢的构建工具。您应该能够在本地执行mvn clean verify
(使用Maven时)。然后,设置你的.travis.yml:
language: java
sudo: false
script: mvn clean verify
并提交&amp;将它与pom.xml一起推送(使用Maven时)。现在,特拉维斯CI应该像魅力一样。
答案 1 :(得分:1)
如果您已经为代码编写了测试,则可以在本地(Linux 和 macOS)使用 ./mvnw test
运行它们
然后,通过在项目根目录/与 travis.yml
文件相同的目录中创建 mvnw
,可以将此工作流转换为 Travis CI。
以下是 Maven 构建的示例:
arch: amd64
language: java
jdk:
- oraclejdk15
cache:
directories:
- $HOME/.m2
script:
- java --version
- ./mvnw clean install
- ./mvnw test