在咱們完成項目開發後,提交到git,當監聽提交後,自動進行編譯,並進行項目的部署,是否是一想就很爽,因此下面引入咱們 > 的主角 —— gitlab-CI,中文文檔。html
Gitlab-CI 是 GitLab Continuous Integration(Gitlab持續集成)的簡稱。
從Gitlab的8.0版本開始,gitlab就全面集成了Gitlab-CI,而且對全部項目默認開啓。
只要在項目倉庫的根目錄添加.gitlab-ci.yml文件,而且配置了Runner(運行器),那麼每一次合併請求(MR)或者push都會觸發CI pipeline。node
# 添加yum源 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash # 安裝 yum install gitlab-ci-multi-runner
$ gitlab-ci-multi-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): >>>>>> 你的URL Please enter the gitlab-ci token for this runner: >>>>>> 你的Token Please enter the gitlab-ci description for this runner: >>>>>> 你對該runner的描述 Please enter the gitlab-ci tags for this runner (comma separated): >>>>>> 該runner的標籤 Whether to run untagged builds [true/false]: [false]: true >>>>>> 是否運行沒有標記的項目(後期能夠改) Whether to lock Runner to current project [true/false]: [false]: >>>>>> 是否鎖定只運行當前項目(後期能夠改) Registering runner... succeeded runner=9e48baqx Please enter the executor: parallels, docker+machine, ssh, virtualbox, docker-ssh+machine, kubernetes, docker, docker-ssh, shell: >>>>>> 選擇runner的類型(根據你的需求選擇,我選擇的shell,個人項目是node項目) Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
- 首先你的項目中的
getlab-runner.yml
文件中的命令須要的環境,你的runner所在的服務器是必需要搭好的,必須你須要執行npm install
和npm run build
,那你的服務器必需要有node環境;- runner的類型比較重要,你必需要清楚你須要一個什麼類型的runner。好比,開始我是須要一個可以運行node項目的runner,可是網上的不少教程統一都是都選擇docker,這個時候你電腦上必需要安裝了docker才能夠,由於這至關於在docker裏面又安裝了一個docker(docker in docker),因此對於個人需求來講,我選擇shell就能夠了;
- 經過Gitlab中某個項目的
Settings
下的CI/CD Pipelines
按鈕進入的頁面中獲得的URL和Token所註冊的runner只服務於本項目,當你在其餘項目的當前頁面時,能夠選擇讓這個runner爲當前項目開啓服務。
mage: node:9.11.1 pages: cache: paths: - node_modules/ script: - cnpm install - npm run build - sudo rm -rf /data/ftp/http/files/scfAdminDoc - sudo mv ./scfAdminDoc /data/ftp/http/files/ artifacts: paths: - public only: - master
具體配置見文檔linux
這個現象通常發生在本機註冊了多個runner,以前的都刪除了,只留下一個,可是當咱們在gitlab管理平臺移除了某個runner的時候,並無徹底刪除記錄,當執行的 gitlab-ci-multi-runner list
的時候你會發現它仍然還在,若是須要完全刪除它,還應該這樣作:git
cd /etc/gitlab-runner ls # 你會看到config.toml文件,打開它並刪除已有的那些runner記錄 vim config.toml
例如放在 /home
文件夾
```bash
# 進入所在目錄,解壓
tar -xvf node-v9.11.1-linux-x64.tar.xzgithub
# 重命名文件夾
mv node-v9.11.1-linux-x64 nodejsdocker
# 創建軟連接,配置全局環境變量(源路徑和目標路徑爲相對路徑)
ln -s /home/nodejs/bin/npm /usr/local/bin/
ln -s /home/nodejs/bin/node /usr/local/bin/shell
# 檢查是否配置成功
node -v
npm -v
```npm
# 普通 scp ./public/* root@192.168.0.226:/data/ftp/http/files/ scp 源路徑/源文件 用戶名(root)@服務器IP:目標路徑 # 免密碼 yum install sshpass sshpass -p 111111 scp ./public/* root@192.168.0.226:/data/ftp/http/files/ sshpass -p 密碼 scp 源路徑/源文件 用戶名(root)@服務器IP:目標路徑
若是是下載,調換順序vim
scp root@192.168.0.226:/data/ftp/http/files/ ./public/* scp 用戶名(root)@服務器IP:目標路徑 源路徑/源文件
我的博客:午後南雜bash