目的
使用Jenkins實現Java 、Android項目開發持續集成:自動編譯、測試、質量分析、打包、分發部署。
環境
CentOS 6.7、OpenJDK 1.7、Jenkins、SonarQube、Android SDK
安裝
- 安裝JDK:yum install vim java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-devel.x86_64
- 安裝Gradle:解壓到/opt/gradle
- 安裝Jenkins:jenkins.war扔到tomcat/webapps下即可。
- 安裝SonarQube:解壓到/opt/sonarqube,配置/conf/sonar.properties
- 安裝Android SDK:下載android-sdk_r24.3.3-linux.tgz,解壓到/opt/android-sdk-linux/
- 更新Android SDK:./tools/android update sdk -u -a -t platform-tool,tool,android-22,build-tools-22.0.1
- 更新Android Support:./tools/android update sdk -u -a -t extra-android-m2repository,extra-android-support
*安裝32位adb需要的庫:yum install glibc.i686 zlib.i686
配置GitLab
- 添加用戶:sudo useradd jenkins
- 生成ssh key:sudo -u jenkins -H ssh-keygen -t rsa -C “jenkins@localhost”
- 授予訪問權限:在GitLab新增用戶Jenkins,并給予項目源代碼訪問權限,并將/home/jenkins/.ssh/id_rsa.pub內容貼到GitLab的SSH Keys里。
- 配置Gitlab Hook:設置Push events觸發Jenkins構建。
配置Jenkins
- 安裝插件:Git、Gradle、Gitlab Hook、ArtifactDeployer
- 配置JDK、Git、Gradle、Environment variables添加ANDROID_HOME:略
- 配置Credentials:From a file on Jenkins master:/home/jenkins/.ssh/id_rsa
- 配置Configure Global Security(可選):1、Jenkins’ own user database 2、Matrix-based
Jenkins里新建項目
- 配置項目Git:填寫項目Git URL,Credentials選擇jenkins
- 配置Invoke Gradle:Tasks里寫clean build sonarqube
- 分發部署:根據實際情況用ArtifactDeployer、Excute Shell、Ansible等。
總結
能用機器干的活盡量不用人干,提高效率、節省成本、避免失誤。