Gitlab的CI/CD初尝试
初衷:今天公司的前端和測試人員吵起來了。原因是測試埋怨前端人員把Bug的狀態更改為已解決,結果代碼根本沒提交,而前端人員埋怨測試測的太頻繁了,需要打幾個環境的包不方便。又要改東西又要頻繁打包費時間。凡正各有各的理由,就是不想辦法解決問題。
哎,沒辦法,為了解決這種問題,我打算看看Gitlab的CI集成,如果能弄上這個那么開發只管提代碼就行了,會自動構建環境。
我這也是現學現賣,今天照著官網和查資料,剛把基本的流程跑通,中間還是費了點時間的,這里記錄下
gitlab ci/cd快速入門
按照官網上說的,要使用CI,就弄兩個東西就行了
1 在你的項目工程中創建.gitlab-ci.yml文件,這個文件主要是配置Piplines和stages以及腳本。gitlab-runner就是執行這個文件來構建環境的。
2 安裝和配置gitlab-runner,一個Go寫的工具,用于執行.gitlab-ci.yml里面的腳本。
一 創建.gitlab-ci.yml
stages: - deploydeploy_develop: stage: deploy tags: - nodejs script: - echo "hello,ci/cd" only: - dev 復制代碼上面的文件我定義了一個piplines(deploy), 然后定義了一個job(deploy_develop), 只對dev分支有效,執行這個job時,會輸出"hello,ci/cd"
二 gitlab-runner的安裝和配置
這個gitlab-runner不需要和gitlab在一臺機器上,甚至可以是在本地機器。相反官方也建議單獨是最好的,構建必須要耗性能呀,不影響其它業務就好。
安裝gitlab-runner docs.gitlab.com/runner/inst… 我是按照官方的步驟一步步來的,系統是Centos,如果是其它系統按照上面的安裝方式就行
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 復制代碼如果需要設置環境變量,則設置/usr/local/bin到PATH中
設置可執行權限
sudo chmod +x /usr/local/bin/gitlab-runner 復制代碼增加一個單獨用戶用于gitlab-runner
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash 復制代碼安裝服務和啟動
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start 復制代碼三 配置gitlab-runner
安裝好gitlab-runner后,需要注冊下,runner和gitlab之間通過Api通信的
gitlab-runner register 復制代碼Please enter the gitlab-ci coordinator URL (e.g. gitlab.com/): http://172.18.10.22/
上面這個url從gitlab的pipelines里面的Specific Runners去找
四 遇到的問題
經過上面的步聚,基本的CI就完成了,在以后的開發中,只需要將代碼合到相應的分支,就會按照.gitlab-ci.yml里面的腳本構建了,記得在上家公司剛看到這個的時候感覺好厲害呀,只不過一直沒動手弄過,今天自已動手試了下不光印象要深刻些,感覺也沒有像以前那么神秘了。
我這個只是跑通了基本的,接下來還用弄nodejs和webpack前端打包這個,這個到時候弄一個shell腳本,然后定義在gitlab-ci.yml里面就行了。
PS:這里不得不噴下公司的運維,平時啥事都不干,四個運維除了平時發個版本一點事情沒有,而且不管是環境還是什么,從來不管的,都是開發自已在弄。要一個線上的只讀權限庫也不肯給,說有安全問題,線上的有些問題完全沒法查。
而且,更可笑的時,線上的發版你都沒法想像,都是我們本地打成壓縮包到指定的文件夾,然后他們再一臺臺機器發布,什么年代了,還整得這么原始。有這時間好好研究下現在的工具提高效率多好。關鍵是我們的leader也差不多這想法,導致這種事一直壓著。
就像今天安裝Ci這個,我開始以為gitlab-runner一定要裝在gitlab的機器,去找他們開權限,結果他們以沒有聽過Ci是啥和可能有安全性為由拒絕了,后面看到官方文檔說可以不在一臺機器,就找了一臺我們部門內部的一臺測試機安裝的。哎,真是無語了。
程序員的危機大部分也是自已造成的,自已不思進取。等那天被淘汰時,又會責怪現實的無情,須不知這一切和自已有很大的關系,很慶幸我還一直在努力,保持學習的習慣。
總結
以上是生活随笔為你收集整理的Gitlab的CI/CD初尝试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue基础知识(一)
- 下一篇: Android-View点击事件短时间重