java的Travis CI yml文件示例

时间:2015-10-21 19:43:18

标签: java maven yaml travis-ci

我是Travis CI的新手,但我已将我的Github连接到它。 我还创建了一个.travis.yml,我将语言设置为java。 我创建了一个HelloWorld.java文件并提交并将其推送到repo。

在Travis,根本没有构建。当我在设置下检查请求时,我看到提交,具有相同的状态"缺少配置",除了一个声明" Build created successfully"但当你翻过它时,它有一个红色的十字和红色覆盖。

enter image description here

我的.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设置哪些设置。

谢谢, 苏海尔

2 个答案:

答案 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