经常需要编译一些基于ARM架构的程序,但是这些程序过一段时间就会升级,因此需要重新编译,然后把二进制程序打包,并且发布到Github上,供大家下载安装。
整个流程虽然简单,但是涉及到很多手动操作,非常繁琐。如果能够自动执行就完美了。在网上找到很多解决方案,其中使用Jenkins比较可行。
Jenkins是用Java写的巨无霸软件,对硬件要求极高。直接在树莓派上运行会很卡,所以只能使用Master-Slave的方式来运行,在PC上运行Master节点,在PI上运行Slave节点。在PC上使用Docker来运行Jenkins比较方便,在PI上只需要有Java环境即可。
Master Setup
jenkins:
image: jenkinsci/jenkins
ports:
- "8080:8080"
- "50000:50000"
volumes:
- ./data:/var/jenkins_home
restart: always
$ mkdir data
$ chown 1000 data
$ docker-compose up -d
$ docker-compose exec jenkins bash
>>> cat ~/secrets/initialAdminPassword
******
>>> ssh-keygen
>>> cat ~/.ssh/id_rsa.pub
......
>>> exit
打开网址:http://jenkins-master:8080,并且安装下列插件:
- Git plugin
- SSH Slaves plugin
Slave Setup
$ sudo apt install git openjdk-8-jdk
$ sudo adduser jenkins
$ su -l jenkins
$ ssh-keygen
$ cat >> ~/.ssh/authorized_keys
......
Master与Slave成功建立连接后,会在Slave上自动生成slave.jar
文件。
Master <-> Slave
点击
Manage Jenkins > Manage Nodes > New Node
添加节点,并且为它设置arm
标签。另外,Master可以使用SSH Username with private key (From the Jenkins master ~/.ssh)
与Slave进行通讯。
最后,在Jenkins中创建一个
New Item
,限制在有arm
标签的机器执行,点击Build Now
手动触发,并且查看运行日志。确保一切正常后,一个崭新的树莓派Slave就成功搭建好了.
from http://easypi.herokuapp.com/setup-jenkins-slave-on-raspberry-pi/