gitlab(私庫)–>project(gitlab-ci每個專案根目錄下必須有)–>gitrunner(專案觸發ci所執行註冊runner令牌伺服器)
一、持續整合(continuous integration)
要了解gitlab-ci與gitlab runner,我們得先了解持續整合是什麼:
二、gitlab-ci
安裝 gitlab-runner (不使用 docker 映象安裝,不好控制)
curl -l | sudo bash
yum install gitlab-runner -y
gitlab-runner -v
註冊 gitlab-runner
導航 > 管理區域(扳手圖示) > runners
在 runner 設定時指定以下 url:
在安裝過程中使用以下註冊令牌: 96jq25hhmmc6n9ez9qzf
啟動 runner!
[root@gitrunner gitlab]# gitlab-runner register
running in system-mode.
please enter the gitlab-ci coordinator url (e.g.
^c[root@gitrunner gitlab]# gitlab-runner register
running in system-mode.
please enter the gitlab-ci coordinator url (e.g.
please enter the gitlab-ci token for this runner:
rx5mtgw5d8ck5wer_pj5
please enter the gitlab-ci description for this runner:
[gitrunner]:
please enter the gitlab-ci tags for this runner (comma separated):
tag-gittest
whether to run untagged builds [true/false]:
[false]: true
whether to lock runner to current project [true/false]:
[false]: true
registering runner... succeeded runner=rx5mtgw5
please enter the executor: kubernetes, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, docker:
shell
runner registered successfully. feel free to start it, but if it's running already the config should be automatically reloaded!
將 .gitlab-ci.yml 檔案加入到專案的根目錄,runner它會去讀取這裡面的配置
需求:whois專案是乙個使用node.js開發的伺服器用來查詢網域名稱的,因此必須需要有node.js環境才能執行
配置 .gitlab-ci.yml
# 建立乙個名為pages的任務
pages:
# 要執行的指令碼
script:
# 初始化node.js專案的依賴
- cnpm i
# 執行指令碼
- sudo /home/gitlab-runner/kubectl-get-pods.sh
# 告訴 runner 這個名為pages的任務,只在master分支上執行
only:
- master
# gitlab ci有三個預設階段:1構建(build)、2測試(test)、3部署(deploy)。
# 告訴 runner 這個名為pages的任務,只在測試階段執行
stage: deploy
# 告訴 runner 我們應用哪個標籤
tags:
- tag-nodejs
# 建立乙個名為test的任務
test:
# 要執行的指令碼
script:
- cnpm i
# 告訴 runner 告訴它測試除master分支之外的其他分支的每次推送
except:
- master
# gitlab ci有三個預設階段:1構建(build)、2測試(test)、3部署(deploy)。
# 告訴 runner 這個名為test的任務,只在測試階段執行
stage: test
tags:
- tag-nodejs
# 建立乙個名為new_tag的任務
new_tag:
# 要執行的指令碼
script:
- cnpm i
# 告訴 runner 這個名為new_tag的任務,只在新建tag的時候執行
only:
- tag
# gitlab ci有三個預設階段:1構建(build)、2測試(test)、3部署(deploy)。
# 告訴 runner 這個名為test的任務,只在測試階段執行
stage: test
tags:
- tag-nodejs
註冊完成之後,gitlab-ci就會多出一條runner記錄,如下所示:
gitlab-ci runner
gitlab-ci會為這個runner生成乙個唯一的token,以後runner就通過這個token與gitlab-ci進行通訊。
那麼,問題來了。註冊好了的runner的資訊存放在哪兒了呢?
原來,runner的資訊是存放在乙個配置檔案裡面的,配置檔案的格式一般是.toml。這個配置檔案的存放位置有以下幾種情況:
在類unix作業系統下(0.5.0之後版本)
如果是以root使用者身份執行gitlab-ci-multi-runner register,那麼配置檔案預設是/etc/gitlab-runner/config.toml
如果是以非root使用者身份執行gitlab-ci-multi-runner register,那麼配置檔案預設是~/.gitlab-runner/config.toml
在其他作業系統下以及0.5.0之前版本
配置檔案預設在當前工作目錄下./config.toml
git命令
命令列指令
git 全域性設定
git config --global user.name "administrator"
git config --global user.email "[email protected]"
建立新版本庫
git clone
cd test
touch readme.md
git add readme.md
git commit -m "add readme"
git push -u origin master
已存在的資料夾
cd existing_folder
git init
git remote add origin
git add .
git commit -m "initial commit"
git push -u origin master
已存在的 git 版本庫
cd existing_repo
git remote rename origin old-origin
git remote add origin
git push -u origin --all
git push -u origin --tags
建立可持續整合系統 Jenkins
在軟體工程實踐中,需要將開發完成的最終產品交付給使用者 或發布給測試部門 就需要我們將源 編譯為可執行檔案。將各個分別開發的模組集合為乙個完整的系統,這個過程成為系統整合,我們用乙個系統來描述這個整合過程。整合系統 輸入指定的軟體資產,輸出根據軟體資產生產出的軟體產品以及其他副產品的系統。對於一般系...
屬於自己的持續整合系統
摘要 下面是最流行的快速持續整合系統,這裡選用的都是一些開源的軟體,方便大家自行構建,之後會介紹一些持續交付的軟體如何與下面的系統進行結合 下面是最流行的快速持續整合系統,這裡選用的都是一些開源的軟體,方便大家自行構建,之後會介紹一些持續交付的軟體如何與下面的系統進行結合 當然阿里雲本身容器服務就帶...
持續整合 《Centos安裝與解除安裝GitLab》
1 安裝相關依賴 sudo yum install curl policycoreutils openssh server openssh clients 2 啟動ssh服務,並且設定為開機自啟動 sudo systemctl enable sshd sudo systemctl start ssh...