当前位置:首页 » 网页前端 » 如何制作gerrit脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何制作gerrit脚本

发布时间: 2022-06-15 21:59:04

① 如何在Ubuntu上搭建Cloud Foundry网站运行环境

Step1 Ubuntu系统更新:

1.$ sudo apt-get update

2.$ sudo apt-get upgrade

3.$ sudo apt-get dist-upgrade

4.$ sudo reboot

Step2 安装curl 和 git。curl 用于数据传输,git用于版本管理

1.$ sudo apt-get install curl

2.$ sudo apt-get install git-core

Step3 为git配置用户名和电邮。须与在 https://github.com/ 上的用户名及注册邮箱一致。替换红色内容,保留引号。

1.$ git config --global user.name "YOUR_USER_NAME"

2.$ git config --global user.email "YOUR_USER_NAME"

(可用以下命令检查配置是否正确: $ git config -l)

Step4 生成SSH公钥 (参考 https://help.github.com/articles/generating-ssh-keys )。该公钥确保在本机与Github间建立安全连接

1.$ ssh-keygen -t rsa -C "YOUR_USER_NAME"

会提示设置一个passphrase。这个passphrase用于每次建立ssh连接时进行身份验证,不必与Github帐户的密码相同,但一定不能遗忘,否则将不能建立ssh连接。

2.$ cat ~/.ssh/id_rsa.pub

复制id_rsa.pub文件内容(即刚才所生成的SSH公钥),登陆 Github 网站并进入Account Settings->SSH Keys->Add SSH Key ,粘贴至Key 区域。

要确保复制内容与公钥的文字完全一致,即使多复制一个空格或空行都有可能出问题。也可按照参考链接https://help.github.com/articles/generating-ssh-keys中的方法使用 xclip。

3.测试能否成功建立ssh连接

$ ssh -T [email protected]

会弹出一个提示框,要求输入密码。输入上面所设定的passphrase即可。

正确输入passphrase后,若在终端窗口中看到"Hi YOUR_USER_NAME! You've successfully authenticated, but GitHub does not provide shell access.",说明一切正常,可以从github上`git clone`代码了。(这是我自己的测试过程,与Github参考链接中稍有出入)

Setp5 安装ruby:

1.安装RVM(Ruby Version Manager)并添加环境变量

$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

$ nano ~/.bashrc

在末尾添加新行: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

$ source .bashrc

(重新载入.bashrc以使改变生效)

$ type rvm |head -1

(若提示"rvm is a function",说明rvm已正确安装)

2.安装ruby所需的依赖包

$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev libtool

$ sudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev

3.使用rvm安装ruby1.9.2,并将其作为默认的ruby版本

$ rvm install 1.9.2

$ rvm --default use 1.9.2

4.安装rails

$ gem install rails

至此,ruby环境已安装就绪。为了在本地运行Cloud Foundry网站,还需进行以下准备工作。

Step6 使用gerrit:

1. 分别注册并登陆 reviews.cloudfoundry.org 和 http://cloudfoundry-codereview.qa.mozycloud.com/gerrit/#q,4708,n,z 。前者是开源的代码库,而后者只对内部开放。

在 Settings->Profile 中设定Username,在 Settings->Contact Information 中单击 Register New Email 添加新电邮地址,Username和新电邮地址均与Step3中一致。在SSH Public Keys 中添加Step4中生成的公钥,添加方法同Step4(2)。

2. 安装gerrit辅助脚本。用于优化gerrit使用中的一些小问题。

$ gem install gerrit-cli

3. 获取tools代码库并为其添加环境变量 (~/.bashrc文件)。

$ git clone [email protected]:vmware-ac/tools.git

添加tools环境变量。 Example: PATH=$HOME/tools/gerrit:$HOME/local/node/bin:/usr/local/mysql/bin..

4. 获取cloudfoundry-website代码(非public)。将红色区域替换为你自己的用户名。代码将保存在~/cloudfoundry-websites

$ gerrit-clone ssh://[email protected]:29418/cloudfoundry-websites

Step7 安装并配置redis。cloudfoundry网站运行需要调用redis库。

1.下载并安装

$ cd /tmp

$ wget http://redis.googlecode.com/files/redis-2.2.4.tar.gz

$ tar -zxf redis-2.2.4.tar.gz

$ cd redis-2.2.4

$ make

$ sudo make install

2.配置初始化脚本:

$ wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server

$ wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf

$ sudo mv redis-server /etc/init.d/redis-server

$ sudo chmod +x /etc/init.d/redis-server

$ sudo mv redis.conf /etc/redis.conf

3.初始化用户和日志路径

$ sudo useradd redis

$ sudo mkdir -p /var/lib/redis

$ sudo mkdir -p /var/log/redis

$ sudo chown redis.redis /var/lib/redis

$ sudo chown redis.redis /var/log/redis

4.启动redis server (每次运行cloudfoundry网站前都需要运行redis server)

$ sudo /etc/init.d/redis-server start

Step8 在本地运行Cloud Foundry 网站。redis server必须处于运行状态中。(参考 $HOME/cloudfoundry-websites/www/README.md 文件)

1.$ cd ~/cloudfoundry-websites/www

第一次进入此路径,终端窗口会提示:

Gemset 'developers' does not exist, 'rvm gemset create developers' first, or append '--create'.

运行 $ rvm gemset create developers,然后离开并重新进入~/cloudfoundry-websites/www

2.$ bundle install

3.$ ruby website.rb

4.打开浏览器,输入网址 127.0.0.1:4567

这样就可以看到运行于本机的Cloud Foundry 英文版网站首页了。如果想在本地运行中文版网站,只需将www改为cn重复Step8即可。

② 如何在Linux上部署gerrit 服务

1、安装ubuntu的时候可选包要选择上openSSH,如果没有选择的话,系统安装完成后手工安装openSSH服务;
2、(挪至第7步)
3、安装java 运行环境,大概需要100M的内容:sudo apt-get install openjdk-6-jre-headless
4、安装邮件服务:postfixsudo apt-get install postfix
注意,安装过程中会提示输入主机名,gemfield此处输入的是 domain_name。
5、安装git服务sudo aptitude install git-core git-doc
6、创建gerrit用户:
sudo adser gerrit
sudo su gerrit
cd ~
7、下载gerrit包,这次编辑时gerrit的版本是2.8.0(最新版本)
gerrit@CivilNet:~$ wget http://gerrit-releases.storage.googleapis.com/gerrit-2.8.war
--2014-01-15 10:30:33-- http://gerrit-releases.storage.googleapis.com/gerrit-2.8.war
Resolving gerrit-releases.storage.googleapis.com (gerrit-releases.storage.googleapis.com)... 74.125.128.132, 2404:6800:4005:c00::84
Connecting to gerrit-releases.storage.googleapis.com (gerrit-releases.storage.googleapis.com) 74.125.128.132 :80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35675319 (34M) [binary/octet-stream]
Saving to: `gerrit-2.8.war'
100%[======================================================================================================================================================>] 35,675,319 10.6M/s in 3.4s
2014-01-15 10:30:37 (10.1 MB/s) - `gerrit-2.8.war' saved [35675319/35675319]
8、安装gerrit:
java -jar gerrit-2.8.war init -d review_site
9、安装过程中会出现交互式的提问,除非gemfield本文明确指定,否则都是默认值。Create ‘/home/gerrit/review_site’ [Y/n]? y
Location of Git repositories [git]: 回车
Database server type [H2/?]: 回车
Authentication method [OPENID/?]: http 回车
SMTP server hostname [localhost]: 回车
SMTP server port [(default)]: 回车
SMTP encryption [NONE/?]: 回车
SMTP username : gemfield
gemfield’s password:
confirm password:
Run as [gerrit]:回车
Java runtime [/usr/lib/jvm/java-6-openjdk/jre]: 回车
Copy gerrit.war to /home/gerrit/review_site/bin/gerrit.war [Y/n]:y
Listen on address [*]: 回车
Listen on port [29418]: 回车
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144If available, Gerrit can take advantage of featuresin the library, but will also function without it.Download and install it now [Y/n]? y
Behind reverse proxy [y/N]? y
Use SSL (https://) [y/N]? y
Listen on address [*]: 回车
Listen on port [8080]: 回车
Canonical URL [http://*:8080/]: http://domain_name/code/ 回车
10、配置完上面的步骤后,gerrit服务会自动启动。以后可以使用如下命令手工启动:/home/gerrit/review_site/bin/gerrit.sh start
11、通过如下步骤设置gerrit服务开机自启动:
sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
so ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
so ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit
服务自动启动脚本/etc/init.d/gerrit.sh需要通过/etc/default/gerritcodereview文件来提供一些配置。该文件的内容为:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0
12、配置apache的反向代理:
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost on
Order deny,allow
Allow from all
ProxyPass /code/ http://domain_name:8080/
AuthType Basic
AuthName "CivilNet Code Review"
Require valid-user
AuthUserFile /home/gerrit/review_site/etc/gerrit.password
13、添加http认证用户(e.g. gemfield):
htpasswd -m /home/gerrit/review_site/etc/gerrit.password gemfield
New password:
Re-type new password:
14、可以通过浏览器访问 http://domain_name/code/ 来使用gerrit了。
15、第一个注册的人就是管理员哦,比如gemfield。
16、现在你也可以去 /home/gerrit/review_site/etc/gerrit.config文件中查看刚才的配置内容了。
补充:这样配置好的gerrit默认只有管理员有权限创建工程,这有点不方便,可以通过下面的方式更改。在 /home/gerrit/review_site/etc/gerrit.config文件中添加以下内容:
[repository "*"]
createGroup = Administrators
createGroup = Registered Users
ownerGroup = Registered Users
经过gemfield的上述步骤,gerrit服务就成功部署起来了,但是怎样在gerrit服务上工作,还得看gemfield的下一篇文章:《使用gerrit服务》
备注:在gerrit2.1版本时本文内容由Gemfield25.0 首先发布于CivilNet Blog. 在gerrit 2.5版本时有所更新。 现在最新的版本是gerrit 2.8 。

③ 安装完gerrit前一定要安装apache吗

1、安装ubuntu的时候可选包要选择上openSSH,如果没有选择的话,系统安装完成后手工安装openSSH服务;
2、(挪至第7步)
3、安装java 运行环境,大概需要100M的内容:

1

sudo apt-get install openjdk-6-jre-headless

4、安装邮件服务:

1

postfixsudo apt-get install postfix

注意,安装过程中会提示输入主机名,gemfield此处输入的是 civilnet.cn。
5、安装git服务

1

sudo aptitude install git-core git-doc

6、创建gerrit用户:

1
2
3

sudo adser gerrit
sudo su gerrit
cd ~

7、下载gerrit包,这次编辑时gerrit的版本是2.8.0(最新版本)
8、安装gerrit:

1

java -jar gerrit-2.8.war init -d review_site

9、安装过程中会出现交互式的提问,除非gemfield本文明确指定,否则都是默认值。
10、配置完上面的步骤后,gerrit服务会自动启动。以后可以使用如下命令手工启动:/home/gerrit/review_site/bin/gerrit.sh start
11、通过如下步骤设置gerrit服务开机自启动:

1
2
3

sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
so ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
so ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit

服务自动启动脚本/etc/init.d/gerrit.sh需要通过/etc/default/gerritcodereview文件来提供一些配置。该文件的内容为:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0

④ 如何在Linux上部署gerrit 服务

1、安装ubuntu的时候可选包要选择上openSSH,如果没有选择的话,系统安装完成后手工安装openSSH服务;

2、(挪至第7步)

3、安装java 运行环境,大概需要100M的内容:

sudoapt-getinstallopenjdk-6-jre-headless

4、安装邮件服务:

postfixsudoapt-getinstallpostfix

注意,安装过程中会提示输入主机名,gemfield此处输入的是 civilnet.cn。

5、安装git服务

sudoaptitudeinstallgit-coregit-doc

6、创建gerrit用户:

sudoadsergerrit
sudosugerrit
cd~

7、下载gerrit包,这次编辑时gerrit的版本是2.8.0(最新版本)

8、安装gerrit:

java-jargerrit-2.8.warinit-dreview_site

9、安装过程中会出现交互式的提问,除非gemfield本文明确指定,否则都是默认值。

10、配置完上面的步骤后,gerrit服务会自动启动。以后可以使用如下命令手工启动:/home/gerrit/review_site/bin/gerrit.sh start

11、通过如下步骤设置gerrit服务开机自启动:

sudoln-snf/home/gerrit/review_site/bin/gerrit.sh/etc/init.d/gerrit.sh
soln-snf/etc/init.d/gerrit.sh/etc/rc2.d/S90gerrit
soln-snf/etc/init.d/gerrit.sh/etc/rc3.d/S90gerrit

服务自动启动脚本/etc/init.d/gerrit.sh需要通过/etc/default/gerritcodereview文件来提供一些配置。该文件的内容为:

GERRIT_SITE=/home/gerrit/review_site

NO_START=0

12、配置apache的反向代理:

ProxyRequestsOff
ProxyViaOff
ProxyPreserveHoston
Orderdeny,allow
Allowfromall
ProxyPass/code/http://civilnet.cn:8080/
AuthTypeBasic
AuthName"CivilNetCodeReview"
Requirevalid-user
AuthUserFile/home/gerrit/review_site/etc/gerrit.password

13、添加http认证用户(e.g. gemfield):

htpasswd-m/home/gerrit/review_site/etc/gerrit.passwordgemfield
Newpassword:
Re-typenewpassword:

14、可以通过浏览器访问 http://civilnet.cn/code/ 来使用gerrit了。

15、第一个注册的人就是管理员哦,比如gemfield。

16、现在你也可以去 /home/gerrit/review_site/etc/gerrit.config文件中查看刚才的配置内容了。

⑤ 如何在新打git tag入库后自动触发Jenkins任务

jenkins配置:

1,源码管理(Git):

Refspec:+refs/tags/*:refs/remotes/origin/tags/*

Branch Specifier (blank for 'any'):**

2,构建触发器:

Poll
SCM:打勾勾,但是什么都不要填

服务器端部署:

方法有三:

1,git hook

在服务器端部署post-receive hook,内容如下:

[python] view plain print?
curl [jenkins address]/git/notifyCommit?url=[git clone address]

不需要权限,所以不用加用户名密码,就可以生效了~
2,gerrit hook

如果使用了gerrit的话,git服务器端的hook就不能用了,所以需要找能替代git post-receive的hook,这里可以用ref-updated(注意不是ref-update),内容同上,位置:review_site/hooks

3,gerrit trigger
这里使用的是ref-updated,但是branch哪里不知如何写,试了之后比较乱,分支更新也都触发了,故没有用。

⑥ gerrit 配置怎么没有显示gitclone地址

1、首先生成ssh密钥
ssh-keygen -t rsa -C your_email

2、上传公钥
登录到gerrit后,点击右上角setting,然后点击”SSH Public Keys”,把自己的公钥复制到文本域中

3、登录gerrit绑定邮箱,在setting的Contact Information中

4、关闭当前命令行,重新打开一个bash进行用户名和邮箱的配置
[plain] view plain
git config --global user.name your_name
git config --global user.email your_email
5、从远端克隆项目到本地
[plain] view plain
git clone ssh://[email protected]:29418/ghostlpx
6、复制gerrit提供的钩子脚本,在每次提交时都会生成change-id
[plain] view plain
scp -p -P 29418 [email protected]:hooks/commit-msg .git/hooks/
备注:当执行Git add “file”添加到暂存器,然后执行git commit提交到本地库的时候,git需要在commit的时候在日志中写入一个唯一标识提交的SHA-1值,即Change-Id值。git commit时会调用commit-msg脚本检查提交信息,以便在git push的时候能正常推送到远程库。此时调用默认目录下的commit-msg钩子脚本,默认目录为“.git/hooks/commit-msg”。如果此目录下无commit-msg脚本,则commit时提交日志中无ChangeId信息,则在git push的时候出错,无法正常将改动上传到远程服务器。