在挪动端 DevOps 流构建环节中,咱们通常会采纳服务器 Jenkins 进行 Android/iOS 打包测试、灰度、上线生产等集成操作,以下是 Mac 终端连贯近程 Linux 装置 Jenkins 并配置 Android 构建环境关键步骤记录,能够在实践中作为参考
1. 连贯近程 Linux 服务器
通过 Mac 终端运行上面命令 <ssh root@ip 地址 >
ssh root@00.000.00.00
会提醒:The authenticity of host ‘00.000.00.00 (00.000.00.00)’ can’t be established.
ECDSA key fingerprint is SHA256:CjvSLfRn/IeKE6O0+y/6XERGt1m6AHiHRgX76U/W+3E.
Are you sure you want to continue connecting (yes/no/[fingerprint])?示意意思:无奈确认 host 主机的真实性,只晓得它的公钥指纹,问你还想持续连贯吗?
所谓 ” 公钥指纹 ”,是指公钥长度较长(这里采纳 RSA 算法,长达 1024 位),很难比对,所以对其进行 MD5 计算,将它变成一个 128 位的指纹。上例中是 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再进行比拟,就容易多了。
很天然的一个问题就是,用户怎么晓得近程主机的公钥指纹应该是多少?答复是没有好方法,近程主机必须在本人的网站上贴出公钥指纹,以便用户自行核查。
假设通过危险掂量当前,用户决定承受这个近程主机的公钥输出 yes , 会提醒 : Warning: Permanently added ‘host,12.18.429.21’ (RSA) to the list of known hosts , 示意 host 主机曾经失去认可, 此时输出明码 xxxxxxx
如果明码正确,就能够登录了。当近程主机的公钥被承受当前,它就会被保留在文件 $HOME/.ssh/known_hosts 之中。下次再连贯这台主机,零碎就会认出它的公钥曾经保留在本地了,从而跳过正告局部,间接提醒输出明码。
每个 SSH 用户都有本人的 known_hosts 文件,此外零碎也有一个这样的文件,通常是 /etc/ssh/ssh_known_hosts,保留一些对所有用户都可信赖的近程主机的公钥
2. 更新 CentOS 7 零碎
通过 Mac 终端运行上面命令
sudo yum install epel-release
sudo yum update
sudo reboot
3. 装置 OpenJDK
通过 Mac 终端运行上面命令
sudo yum install java-1.8.0-openjdk.x86_64
java -version
sudo vim ~/.bash_profile
JAVA_HOME=/usr/local/java-1.8.0-openjdk.x86_64
PATH=$JAVA_HOME/tools:$PATH
export JAVA_HOME
export PATH
source ~/.bash_profile
4. 装置 wget 命令
通过 Mac 终端运行上面命令
sudo yum -y install wget
5. 通过 Linux 服务器查看文件门路
通过 Mac 终端运行上面命令
whereis java
which java
echo $JAVA_HOME
echo $PATH
6. 装置 Android sdk
下载地址 http://tools.android-studio.org/index.php/sdk/
通过 Mac 终端运行上面命令
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
tar -zvxf android-sdk_r24.4.1-linux.tgz
mv android-sdk-linux /usr/local/
7. 通过 sdkmanager 命令装置 Android 工具包
- ./sdkmanager packages 其中 packages 代表须要装置的工具包的 path , 查看 path 可通过 ./sdkmanager –list 命令,
packages 参数 必须要应用引号引起来,可同时增加多个 packages 参数同时装置多个包(多个包之间用空格隔开,并各自应用引号引起来) - 装置平台工具包(adb 和 fastboot 命令的包)
./sdkmanager “platform-tools” - 同时装置多个包
./sdkmanager “platform-tools” “build-tools;28.0.3” “platforms;android-28” - 更新已装置的包
./sdkmanager –update -
卸载已装置的包
./sdkmanager –uninstall “ 安装包 path”卸载单个 ./sdkmanager –uninstall “build-tools;28.0.0”
卸载多个 ./sdkmanager –uninstall “build-tools;28.0.0” “platforms;android-26”
8. 配置 ANDROID_HOME 环境变量
通过 Mac 终端运行上面命令
sudo vim ~/.bash_profile
ANDROID_HOME=/usr/local/android-sdk-linux
PATH=$ANDROID_HOME/tools:$PATH
export ANDROID_HOME
export PATH
source ~/.bash_profile
9. 更新 Android 各个版本的 sdk
通过 Mac 终端运行上面命令
android list sdk --all
按序列号 update
android update sdk -u --all --filter 1,2,19,20,21,22,23,24,25,27,29,35,36,46,47,48,49,50,51,52,53,54,55,56,57,202
10. 装置 Jenkins
通过 Mac 终端运行上面命令
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
11. 启动 Jenkins
通过 Mac 终端运行上面命令
systemctl start jenkins.service
执行 systemctl status jenkins.service 查看服务状态,如果呈现启动失败,失败错误信息为 Starting Jenkins bash: /usr/bin/java: No such file or directory 是 java 环境配置的问题,找到你的 jdk 目录,创立软链接即可:
ln -s /usr/lib/jdk1.8.0_251/bin/java /usr/bin/java
12. 关上 Jenkins
浏览器输出地址 http:<ip 或者域名 >:8080
http://00.000.00.00:8080/login?from=%2F
13. 查看解锁明码
通过 Mac 终端运行上面命令
sudo vim /var/lib/jenkins/secrets/initialAdminPassword
14. 卸载 Jenkins
-
卸载 yum 形式装置的 jenkins(默认装置主目录是在 /var/lib/jenkins/)
service jenkins stop yum clean all -- 能够不执行 yum -y remove jenkins
-
卸载 rpm 形式装置的 jenkins
rpm -e jenkins rpm -ql jenkins find / -iname jenkins | xargs -n 1000 rm -rf
15. 上传文件到服务器
-
上传文件格式:scp – 本地文件门路 – 近程服务器用户名 @域名 /ip – 冒号 / 须要保留的门路 / 须要保留的文件名
scp /Users/xxxx/Downloads/login.keychain root@00.000.00.00:/var/lib/jenkins/kpp_upload/login.keychain
-
上传文件夹格局:scp -r【本地文件的门路】【服务器用户名】@【服务器地址】:【服务器上寄存文件的门路】
scp /Users/xxxx/Downloads/test root@00.000.00.00:/var/lib/jenkins/kpp_upload/
16. 装置 Gradle
通过 Mac 终端运行上面命令
wget https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
17. 解压安装包
通过 Mac 终端运行上面命令
yum install -y unzip zip
unzp gradle-4.4.1-all.zip
18. 登录 Jenkins
进入 Jenkins 治理页面,抉择系统管理
-
抉择全局配置
配置全局属性键值对 : ANDROID_HOME
配置钉钉告诉 webhook -
抉择插件治理
装置 git、gitlab、钉钉等必要插件
-
抉择全局配置工具
配置 JDK 目录
配置 Git 目录
配置 Gradle 目录
配置 Maven 目录 -
抉择节点治理
配置服务器节点,例如 Linux 连贯近程 Mac 终端节点
-
新建构建工作
开启 Jenkins 构建我的项目之旅
19. 其余 Linux 操作命令
- 强制退出(留神带:)
:q!+enter - 强制保留
:w!+enter - 退出并保留
:wq+enter