将安卓源码部署到自己搭建的gitlab上,并保留本地提交记录

本文详细介绍了如何将Android源码部署到自建的GitLab服务器,包括软件环境设置、GitLab服务端部署、Repo Manifest.xml生成、仓库创建、源码推送及Repo同步。过程中需要注意避免使用ARM版GitLab,确保磁盘空间充足,以及处理好XML文件。文章还提供了错误处理和自动化脚本示例。
摘要由CSDN通过智能技术生成

Android 源码部署到服务器端,一共分为七个部分。

  1. 软件环境
  2. GitLab 服务端部署
  3. Repo Manifest.xml 生成
  4. GitLab 建仓
  5. Git Push 源码到服务器
  6. Repo 同步源码
  7. 提交修改后的代码

为了少采坑,少浪费时间,建议不要使用ARM版的gitlab、保证gitlab使用的磁盘容足够、涉及到的xml文件请用浏览器打开,确认可以正常显示!!

一、软件环境

服务器端系统:Ubuntu 16.04

GitLab 软件:GitLab Community Edition

客户端系统:Ubuntu 14.04

Git 软件:Git 2.27.0

二、GitLab 服务端部署

  1. 必要组件安装
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
sudo apt-get install -y postfix

在安装 postfix 时候,需要使用左右键和回车键确认,并在下拉列表选择 Internet Site 并确认。

  1. 信任 GitLab 的 GPG 公钥
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null  

  1. 配置镜像路径

如果没有安装 vim 先进行安装

vim /etc/apt/sources.list.d/gitlab-ce.list

打开 gitlab-ce.list 后,写入:

deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main

如果 gitlab-ce.list 文件不存在,自行创建即可,并赋予权限,可在 root 权限下进行。

touch /etc/apt/sources.list.d/gitlab-ce.list
chmod 777 /etc/apt/sources.list.d/gitlab-ce.list
  1. 安装 gitlab-ce
sudo apt-get update
sudo apt-get install gitlab-ce
  1. 执行配置
sudo gitlab-ctl reconfigure
  1. 启动 GitLab
sudo gitlab-ctl start
  1. 修改 external_url
sudo gedit /etc/gitlab/gitlab.rb 

修改如下路径:

external_url 'http://gitlab.example.com'

具体要换成你服务端的 IP,比如,我这里使用的是 192.168.50.10

external_url 'http://192.168.50.10'

这里一定要重新配置,再次执行配置命令

sudo gitlab-ctl reconfigure 
  1. 访问你的 GitLab 服务

打开同一网段的任何电脑上的浏览器,前提是电脑可以互相访问,如果使用了虚拟机,则要配置网络类型为桥接,并将虚拟机都配置在同一网段内,并且可以互相访问,可以 ping 一下,保证网络畅通。

浏览器地址栏输入:http://youip(需要更换为你自己的 url)。

接下来可以创建 root 用户,输入密码并确认。注册其他用户等等。

三、Repo Manifest.xml 生成

为什么需要自己去生成 Manifest.xml?如果你手上的代码已经不知道哪里同步来的,或者是方案厂商提供的,总之不是使用 Repo 管理代码,可能把修改的部分作为一个单独的 git 仓上库了。如此我们就需要根据这份现有的源码去生成 Manifest.xml。

前提是基于源码修改的仓都用 git 上库了,或者是增加了一些仓但是和 Manifest.xml 不同步,这都需要修改 Manifest.xml 保持源码仓和 Manifest.xml 对等。

因为源码中每个仓都有 .git 了,所以我们需要统计所有的 .git ,这是为了找出所以的 git 仓,然后写入 Manifest.xml,如此我们就可以使用 Repo 管理这些仓了。

  1. 找出所有 git 仓库
find myandroid/ -type d -name '.git' > git_pro.txt

打开 git_pro.txt 就会看到如下行

......
/home/snake/Share/art/.git
......

使用 bash 指令“掐头去尾”(删掉前缀路径 /home/snake/Share/ 和后缀 .git)

cat git_pro.txt | cut -c 18- | sed 's/.....$//' > path.txt   //此处的18和.....根据自己的情况填写

得到如下路径:

art

接着需要生成清单文件。

gen_xml.sh

#!/bin/bash
echo -e "
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<manifest>
  <remote  name=\"android_x\"
           fetch=\"..\"/>
  <default revision=\"master\"
           remote=\"android_x\"
           sync-j=\"4\" />" >>$1
 
while read line; do
	echo "  <project path=\"$line\" name=\"$line\" />" >>$1
done
echo -e "\n</manifest>" >>$1

运行脚本 gen_xml.sh 即可。

cat path.txt | ./gen_xml.sh default.xml

default.xml 内容如下,这就是我们要的清单文件(Manifest.xml)。

<?xml v
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值