從 GitLab 13.8.x 升級到 14.2.x
因為有個 security 大洞,所以需要升級…
因為有個 security 大洞,所以需要升級…
gitlab CI/CD script(.gitlab-ci.yml)理想上要一個版本應付所有分支,且npm install/build的專案建立的資料夾(dist, node_modules)不該被放到repositoy中,但通常又希望拿build好的專案結果直接部屬在正式環境,可以透過下面這些方式來完成。
之前忘記整理一下,寫來記錄
一開始是因為同事需要用 gitlab runner build vue.js 的 project, 並將結果 push 回其他 branch,但是會有問題,最終發現只是因為個單引號的關係 Orz 反正也是記錄一下,主要是整個找bug 過程
memo 一下, 免得升級 production 的時候GG
gitlab 理論上只能有一個對外網址,在 /etc/gitlab/gitlab.rb 內 (相關設定請參考 https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab ) 而做完修改之後執行 gitlab-ctl reconfiguration 則會產生 nginx 的 config file, 放在 /var/opt/gitlab/nginx/conf/gitlab-http.conf 所以如果需要同時 expose http 和 https 的話,只要在 gitlab-http.conf 裏頭修改就可以,例如這樣 server { listen *:80; listen *:443 ssl; ssl_certificate /var/www/ssl/xxx.chained.crt; ssl_certificate_key /var/www/ssl/xxx.key; ssl_protocols TLSv1.2; ## 以下省略 } 修改之後記得重新啟動 gitlab nginx ($ gitlab-ctl restart nginx) 就可以了
如果要自動化拿到最後 commit 的 branch (大概只有再 staging/testing server 上有這樣的需求),可以用 git command 加上 shell (sed, grep) crontab 來完成。當然,如果是 gitlab 的話還有 gitlab-runner 可以幫忙,但好像用 shell script 比較直覺一點(?)
2019年初發生的,還是來記錄一下。主要是因為gitlab升級之後,舊版的v3 api已經被移除,所以導致jenkins gitlab plugin無法使用。
Gitlab 提供了一些 api ,回傳資料皆是以 JSON 格式表示,不管是要寫程式來協助做管理,或者是要從 command line 用 curl 來做一些事情都還蠻方便的,畢竟 web 介面有時候就是比較慢一點…