...
CI | Target OS | Target Language | Description |
---|---|---|---|
Jenkins CI | Windows | Java 8 | Test all new pull requestsDeprecated |
Travis CI | Ubuntu | Oracle Java 7 | Test all new pull requests |
AppVeyor CI | Windows | .NET VS 2013, 2015, 2017 | Test all pull requests |
...
- First, you have to get an access to Jenkins (http://builds.apache.org). To get an access to Jenkins, Ask your PMC chair
- If you get an access, open builds.apache.org and login with your account
- Jenkins > New Item : Enter item name and check Maven project.
- To trigger Github pull request builds, Follow the steps in this link: https://blogs.apache.org/infra/entry/github_pull_request_builds_now
- Set JDK version to 1.7
- Check "Restrict where this project can be run" and add "ubuntu" into the "Label Expression" filed. The builder will be executed on ubuntu machines. Therefore, to build in windows machine, we have to create another new item and add "windows1||windows2" into the "Label Expression".
- In Build, write "clean install" into "Goals and options"
- In Post Steps, check "Run regardless of build result"
- If you want to update relevant JIRA issues whenever Jenkins builds the related patch, then add "Update JIRA relevant issues" in Post-build Action. To trigger this post build action, we have to insert JIRA issue number into our commit message. Here is an example commit message: "[REEF-11] Jenkins integration test".
- If you have any problem using Jenkins, please file a ticket to INFRA (https://issues.apache.org/jira/browse/INFRA ) or send an email to builds@apache.org
- Here is an example setting:
Rebuild
- Open http://builds.apache.org and login with your account
- Access a build link what you want to rebuild. (ex. https://builds.apache.org/job/Reef-pull-request-ubuntu/187/ )
- Click rebuild button
Reconfiguration
- Open http://builds.apache.org and login with your account
- Click "Configuration" in https://builds.apache.org/job/Reef-pull-request-ubuntu/ or https://builds.apache.org/job/Reef-pull-request-windows
- Change setting and click the save button
2. Travis CI
Travis-CI.org provides free service for Open Source projects.
SetupRequest Apache INFRA team to enableTravis
-CI was enabled for apache/reef GitHub repository by Apache INFRA team :
https://issues.apache.org/jira/browse/INFRA-10567
Make `.travis.yml` file at the top folder of projects. JDK7 and JDK8 are tested simultaneously.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
sudo: false
language: java
git:
depth: 1
jdk:
- oraclejdk7
- oraclejdk8
env: PATH=$PATH:$HOME/local/bin
cache:
directories:
- $HOME/.m2
- $HOME/local
notifications:
email: false
install: ./dev/travis-install-dependencies.sh
script:
mvn clean install -q -ff -Dsurefire.useFile=false -DLOG_LEVEL=WARN |
For instructions on setting up your own instance of Travis CI see Java build instructions.
3. AppVeyor
AppVeyor provides free service for Open Source projects.
For setup we use, see {REEF_HOME}\appveyor.yml in our repository.
Anybody can configure their mirror of reef to be built and tested in AppVeyor. To do this, go to https://ci.appveyor.com/projects/new (after you're logged in with your GitHub account), and add your reef project. Everything pushed to any branch in the mirror gets executed in AppVeyor with the same settings as on main reef (taken from appveyor.yml). It is possible to limit the scope of tests executed by modifying test_script section. For example, to run only StreamingRemoteManagerTest in O.A.R.Wake.Tests, change it to:
language | bash |
---|---|
title | appveyor.yml |
instructions on setting up your own instance of AppVeyor see C# build instructions.
test_script: - cd .\lang\cs - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Wake.Tests\Org.Apache.REEF.Wake.Tests.dll -class Org.Apache.REEF.Wake.Tests.StreamingRemoteManagerTest