想不到有什麼簡短的標題,姑且就順著上次的《GitLab CI + Windows Docker 的一些紀錄》,把這篇當成 part 2 吧。
Heresy 這邊在 2019 年建立了工作環境的 GitLab server 後,也花了好一段時間把 GitLab CI/CD 的架構弄了一個雛型出來。中間有搞錯一些東西、也拿來玩了一些其它自己的東西。
而老實說,在 Heresy 這邊碰到最多問題的,基本上應該還是 Windows Docker 上的問題了…
想不到有什麼簡短的標題,姑且就順著上次的《GitLab CI + Windows Docker 的一些紀錄》,把這篇當成 part 2 吧。
Heresy 這邊在 2019 年建立了工作環境的 GitLab server 後,也花了好一段時間把 GitLab CI/CD 的架構弄了一個雛型出來。中間有搞錯一些東西、也拿來玩了一些其它自己的東西。
而老實說,在 Heresy 這邊碰到最多問題的,基本上應該還是 Windows Docker 上的問題了…
在自己架設的 GitLab Server 上,管理者其實有相當多的設定可以調整,也有相當多的外部服務可以整合來一起用。
其中一類,就是讓使用者可以在 Markdown 的文件(包含 wiki)中,使用特殊的語法來繪圖。
比如說,當單純用文字比較難說明的時候,就可以透過簡單的語法來描述,系統會自動把這些描述轉換成圖像,幫助其他人來了解。
GitLab 在這部分,提供了 PlantUML(官網) 和 Kroki!(官網) 這兩套服務可以整合,讓使用者可以自行設定要使用的服務網址。
像右圖就是一個用 PlantUML 的語法畫出來的圖;要畫這樣一張圖,他的語法如下:
Heresy 之前自己架的 GitLab Server 的時候,由於是純對內的服務、沒有對外連線,所以要使用 GitLab 內建的 Let’s Encrypt(官網)來取得 SSL 憑證有點難度,所以當時就決定先用 http 來跑、而沒有用 https 了。
後來,手邊其實也有對應網域的 SSL 的憑證了,GitLab 的 SSL 設定也研究得差不多了(官方文件),所以就決定花點時間、把他從走 8080 port 的 http 轉換到標準的 443 port https 了。
而這篇,就是轉換的一些紀錄。
Heresy 在去年五月的時候,有寫一篇《刀劍神域記憶重組 公告變更記錄產生器》,算是幫自己寫的網站爬蟲/更新偵測器做個紀錄。
後來在今年三月,則也有去處理 GitLab 專案 CI/CD 的 artifact 占用過大空間的問題(參考)。
而這幾天,則是又抓時間改了一些以前就想做的東西。
GitLab 的 CI/CD 功能在 Heresy 來看,算是相當便利的自動化功能,Heresy 現在不管是在工作,還是私人的東西,都有在透過這東西來做自動化的處理。
不過,前幾天…倒是發現自己之前的「刀劍神域記憶重組 公告變更記錄產生器」幹了件蠢事…
那就是 Heresy 沒有設定 artifact 的過期日,結果這些 artifact 都按照預設值,會保存四周。
而其結果,就是這個專案明明只有不到 400KB,卻佔用了 15GB 的空間…
GitLab 基本上是一個有固定在更新的專案,每次更新也經常會出現一些實用的功能可以用。
像是在 12.2 的時候,引進了 「Directed Acyclic Graphs (DAG)」、13.7 的時候允許設定在手動執行 pipeline 的預輸入變數,個人都覺得算是滿實用的~
而這次 GitLab 更新到 13.8.0,則是加入了「pipeline editor」,讓使用者更容易地撰寫 GitLab CI/CD 的腳本了!
官方的更新公告是《GitLab 13.8 released with a Pipeline Editor and DORA metrics》。
Heresy 這邊自從開始玩 GitLab CI/CD 後,發現其實它的應用範圍也還滿廣的,有的時候也可以拿來做一些額外的應用、服務的部屬;所以後來當 GitLab 更新的時候,都會注意一下有沒有什麼新功能可以玩。
而在去年底,GitLab 推出 13.7 的更新版的時候,是發現其中「Pre-filled variables when running pipelines manually」(連結)好像還算滿實用的?所以就稍微玩了一下。
這項功能官方之前也有一篇《How pre-filled CI/CD variables will make running pipelines easier》在介紹;相關的 issue 是《Generate Run Pipeline form with pre-filled variables from .gitlab-ci.yml》。
這篇算是 Heresy 這邊透過 Docker 來架設 GitLab server 的一些後續,真要說的話,應該是之前《GitLab 升級到 13 的筆記》的延伸。
GitLab 在 13.0 的時候,把「Design Management」(官方文件)開放給免費的使用者使用了。這項功能的目的,主要應該就是讓使用者可以在 issue 中上傳圖檔,方便討論。
不過,對 Heresy 這種是從 GitLab 11 升級上來的人來說,這項功能預設是不能用的。而且還會在 issue 那邊顯示警告,看起來滿煩的。 XD
Heresy 這邊在去年架設好自己的 GitLab 後,都有固定在更新,同時也在試著研究之前沒用上的功能、看看到底有沒有幫助(例如 Gitlab CI/CD)。
由於自己採用的是 Docker 的形式(Omnibus GitLab),所以其實不管是安裝、升級,都算是相對簡單的;但是在升級到前幾天推出的 GitLab 13 的時候,倒是小出包了一下…
GitLab 13 的新功能,可以參考官方的《GitLab 13.0 released with Gitaly Clusters, Epic Hierarchy on Roadmaps, and Auto Deploy to ECS》這篇介紹。
而這邊踩到的地雷,則是他把預設的網頁伺服器,從 Unicorn 改成 Puma 了。
之前有說過了,Heresy 為了自己在玩的手機遊戲《刀劍神域-記憶重組》另外弄了一個部落格來做紀錄(網址)。
而實際上,之前由於覺得遊戲內的公告由於不是照著更新時間排序、要找到哪個公告是新的實在很麻煩,所以就火大,自己試著想辦法去做公告的變更紀錄了。
搞了老半天,弄出了一個使用了兩個 Git repository 的奇怪架構系統,算是勉強做到堪用的程度了~
目前的成品是:https://kheresy.github.io/SAOMD-AA/changelog.html
而實際在運作的專案則是 https://gitlab.com/kheresy/saomd-announcement