android 服务器源码,Android 源码部署到服务器(Git+GitLab+Repo)

Android 源码部署到服务器(Git+GitLab+Repo)

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

软件环境

GitLab 服务端部署

Repo Manifest.xml 生成

GitLab 建仓

Git Push 源码到服务器

Repo 同步源码

提交修改后的代码

一、软件环境

服务器端系统:Ubuntu 16.04

GitLab 软件:GitLab Community Edition

客户端系统:Ubuntu 14.04

Git 软件:Git 2.27.0

二、GitLab 服务端部署

必要组件安装

sudo apt-get update

sudo apt-get install -y curl openssh-server ca-certificates

sudo apt-get install -y postfix

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

信任 GitLab 的 GPG 公钥

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

配置镜像路径

如果没有安装 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

安装 gitlab-ce

sudo apt-get update

sudo apt-get install gitlab-ce

执行配置

sudo gitlab-ctl reconfigure

启动 GitLab

sudo gitlab-ctl start

修改 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

访问你的 GitLab 服务

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

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

[图片上传失败...(image-54367b-1612399398269)]

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

三、Repo Manifest.xml 生成

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

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

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

找出所有 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

得到如下路径:

art

接着需要生成清单文件。

gen_xml.sh

#!/bin/bash

echo -e "

fetch=\"..\"/>

remote=\"aosp\"

sync-j=\"4\" />" >>$1

while read line; do

echo " " >>$1

done

echo -e "\n" >>$1

运行脚本 gen_xml.sh 即可。

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

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

fetch=".."/>

remote="aosp"

sync-j="4" />

......

fetch 是 “…” 代表返回到上级目录,我这里将 manifest 仓库放在了 android6newc 组下面,详见下文。

revision 是 master 代表主干分支,这个要和 android6newc 组下面源码仓分支对应。

这二者配置不正确,repo 无法正常同步源码仓。

四、GitLab 建仓

源码中仓库太多了,不可能在浏览器内一个一个创建,所以需要借助 python-gitlab 库来自动完成。将 default.xml 放在和脚本同一目录,运行它。等待建仓完成,有点耗时,可能要半小时。如果没有安装 python-gitlab 可以借助 pip 进行安装。

脚本内写死了父组名(Android6NewC)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值