顯示具有 DevOps 標籤的文章。 顯示所有文章
顯示具有 DevOps 標籤的文章。 顯示所有文章

2016-04-20

安裝與備份Gitlab教學

GitHub幾乎是所有(除了China)資訊工程師置放源碼的首選,但缺點是免費使用你必須開源自己的專案,否則必須額外付費,這時候你可以考慮安裝Gitlab作為repository。

[作業環境]
  • Ubuntu 12.04 LTS
  • Gitlab version:gitlab-ce_7.10.4
[網路環境]
  • 請注意自己的網路有通,不然記得設定proxy
  • export http_proxy=http://${ip}:${port}
  • export https_proxy=http://${ip}:${port}
[安裝步驟]
  • sudo apt-get install curl openssh-server ca-certificates postfix
  • curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  • sudo apt-get install gitlab-ce=7.10.4~omnibus-1
  • sudo gitlab-ctl reconfigure
[Gitlab網頁設定]
  • 把自己的IP替換這兩個檔案
    • sudo vim /etc/gitlab/gitlab.rb
    • sudo vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
  • 重啟Gitlab
    • sudo gitlab-ctl reconfigure
    • sudo gitlab-ctl restart
[備份]

2016-03-18

整合Redmine跟Gerrit

Redmind是一套用Ruby-on-Rail開發的開源專案管理軟體,知名度頗高;Gerrit則是Google工程師開發一套建構於版本控制系統之上的Code Review的系統,他的hooks功能在前篇提到一 些,這裡要介紹怎麼把Redmind開出來的issue自動被Gerrit在patchset更新的時候一併更新。

[環境]

  • OS:Ubuntu 14.04 LTS
  • Redmine version: 2.3.2.stable
  • Gerrit version: 2.11
  • Script language: Python 2.7
[安裝設定]

Step 1. 開通Redmind的REST功能,管理權限Admin登入,進行網站設定 -> 認證 -> 啟用REST,打勾然後儲存。




Step 2. 取得各自帳號的REST API key,點選右上角我的帳戶,下方API金鑰點選後會彈出key,有了他可以透過REST API對Redmine程式化操作。

2016-03-11

如何設定Gerrit的Hook機制

Gerrit是一套Google工程師撰寫的開源code review系統,底下可以銜接多種類的版本控制工具,最近因為Android Studio的開發導入Gerrit作為code review的系統開始竄紅;以下介紹Gerrit如何設定其Hook機制。

[安裝環境]
  • 作業系統:Ubuntu 14.04 
  • Gerrit版本:2.11
  • 版本控制:Git

[設定步驟]
Step 1. 請正確安裝Gerrit系統(略)

Step 2. 修改gerrit的設定檔,把hook的設定補進去,目錄在${your gerrit home}/etc/gerrit.config;請根據自己的需求設定gerrit支援的hook階段

[hooks]
    path = /etc/gerrit/hooks
    patchsetCreatedHook = patchset-created
    # ...you can add more hooks

Step 3. 將script設定為可執行

sudo chmod +x /etc/gerrit/hooks/patchset-created

Step 4. 重啟Gerrit

sudo /etc/init.d/gerrit restart

Step 5. patchset-created是你要執行hook的script,可以換成任何您熟悉的script語言,置放在/etc/gerrit/hooks目錄底下,注意檔名要正確才能對應;先用bash來測試是否正常執行。

#!/bin/sh
echo 'hook setting test.' > hook-gen.txt;
注意:hook-gen.txt會產生到你git到的repo的project目錄,原則上應該是/etc/gerrit/git/${project}。

Step 5. 從本地端執行git commit push,將code送到Gerrit,然後當patchset被產生的時候就會執行patchset-created這支script。