Android + Linux + Jenkins + React Native 自动化构建

环境配置

因为公司给的服务器,没有任何配置,我们需要从头开始配置。

连接服务器

本人用 Mac

1
ssh <用户名>@<ip地址> -p <端口>

替换<>及其对应内容,没有端口可以不写。
如需密码会要求输入,照此操作就可。

服务器系统

1
ping <ip地址>

得到 ttl = 64 判断系统为 Linux

Git 安装配置

CentOS 系统 使用 yum 安装

1
2
3
4
5
6
yum install git // 安装
git –version // 查看安装是否成功
git config --global user.name "用户名" // 配置用户名
git config --global user.email "邮箱" // 配置邮箱
ssh-keygen -t rsa -b 4096 -C "邮箱" // 生成公钥,三次握手直接 enter 默认配置
cat ~/.ssh/id_rsa.pub // 复制公钥

公司使用 gitolite 搭建的 git 相关文章大家可以自己搜索。
把生成的公钥添加到 git,配置相应权限。

JDK 安装配置

1
2
su -c "yum install java-1.8.0-openjdk" // 安装
java -version // 检查是否安装

openjdk 下载

Jenkins 安装

1
2
3
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

Jenkins 安装
Start/Stop 命令

1
2
sudo service jenkins start/stop/restart
sudo chkconfig jenkins on

SDK 安装配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 基础包
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

// 解压
tar -zxvf android-sdk_r24.4.1-linux.tgz

// 进到tools目录
cd android-sdk-linux/tools

// 查看可见sdk版本
./android list sdk -a

// 版本前面会有序号 [-a 列出所有sdk版本] [-u 无ui模式] [-t 指定安装版本]
./android update sdk -a -u -t [序号]

// 指定版本多个安装
android update sdk -u --all --filter 1,2,3

// 安装完成后此时我们在 .../tools 目录下, 获取当前 sdk 路径
cd .. && pwd

// 配置 ANDROID_HOME
vim /etc/profile
// 加上
export ANDROID_HOME="你的sdk路径"
// 立即生效
source /etc/profile

node 配置

1
2
3
4
5
6
7
8
9
// 安装make及gcc,gcc-c++编译器
yum install -y gcc-c++ make
// 获取源码
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
// 安装
yum install nodejs
// 查看版本
node -v
npm -v

React Native 环境配置

RN 官网

1
npm install -g react-native-cli

这里记住 Android SDK Build-Tools 版本为 23.0.1
版本具体信息
安装方式参见 上面 SDK 配置

Jenkins 配置

// 打开 jenkins 默认配置 这里可以更改配置 比如更改 Java 环境配置

1
vi /etc/default/jenkins

// 查看 jenkins 打印记录 可以看到秘钥

1
vi /var/log/jenkins/jenkins.log

本地使用的 gitolite 需要和 Jenkins
Jenkins 和 Gitolite 关联

1
sudo -u jenkins ssh-keygen