GitLab CI + Windows Docker 的一些紀錄

Docker(官網)這種比虛擬機器更輕量化的「容器」虛擬化技術,基本上算是這幾年來一個滿重要的技術。透過 Docker,他可以將需要的環境打包、建構出類似虛擬機器,但是更小、更彈性的可移植環境,在需要自動佈署的環境上,應該算是很實用的一種技術。(參考介紹參考介紹

不過由於工作的領域不同,所以 Heresy 其實之前都沒有去碰這一個技術;真的開始接觸到,是之前試著使用 Docker 來架設 GitLab Server 的時候開始的。

後來,Heresy 也很認真地開始搞整個 GitLab CI/CD 的架構,試著透過 GitLab 的系統來做一些程式開發的自動化建置、測試。最初,考慮到環境的熟系程度,Heresy 都是直接使用作業系統的 shell 來作為 gitlab-runner 的 executor。

閱讀更多»

GitLab CI/CD 支援 DAG、工作可以多線同時進行了~

Heresy 今年把新的 GitLab Server 架好後,就開始玩 CI/CD(Continuous Integration and Deployment)的功能、試著透過這個架構,來做一定程度的自動化了。

除了目前 C++ 專案的自動建置腳本已經算是完成了,其他一些特別的工作,也開始試著用 GitLab CI/CD 來玩,所以這段期間對這東西還算玩得滿認真的。

而從開始些 C++ 專案的跨平台建置開始,其實 Heresy 就覺得 GitLab CI/CD 的架構,有一點很討厭,就是他是基於「stage」來控制流程的,前面的 stage 沒有全部結束的話,後面的 stage 就不會進行。

所以如果整個 pipeline 有 build 和 test 兩個 stage 的情況下,就會變成要所有的 build 都完成,才能進行測試。

閱讀更多»

[濫用] GitLab CI/CD 的 cache 機制

感謝網友提醒,根據官方《Cache vs artifacts》的說法,看來 Heresy 這邊把 build 階段產生的檔案透過 cache 傳遞到 test 階段,應該是嚴重的誤解/誤用了。 XD


之前在《GitLab 簡單的 C++ 專案腳本範例》和《GitLab 的 C++ CI/CD 腳本:使用 PowerShell》這兩篇文章,有分享了 Heresy 這邊目前 GitLab CI/CD 的腳本寫法了。

而當時也有提到,在 build 階段到 test 階段,Heresy 沒有玩出比較正規的檔案傳遞方法。

最近 Heresy 又開始測試這部分的東西。理論上,要在不同的 job 間傳遞檔案,是要透過在 .gitlab-ci.yml 裡面加上 cache官網)來做。

在有加入 cache 的狀況下,GitLab Runner 會在 job 開始、透過 git 取得檔案後,就試著把 cahce 的檔案抓下來;而當腳本執行完後,則會再把 cache 指定的檔案打包,放到 Gitlab-runner 上。

Heresy 目前加上 cache 後的 .gitlab-ci.yml 大致上會像下面這樣:

閱讀更多»

GitLab 的 C++ CI/CD 腳本:使用 PowerShell

之前已經在《GitLab 簡單的 C++ 專案腳本範例》這篇文章裡面,大概整理了一下 Heresy 這邊針對自己的 C++ 專案、撰寫出來的 GitLab CI 自動建置的腳本了。

不過,當時在 Windows 平台下,Heresy 是使用「Windows Batch」(CMD)這個 shell 來進行操作的。

但是,GitLab 官方其實有說,從 11.11 開始,就將「Windows Batch executor」設定為棄用(deprecated),並將於 13.0 時移除(預計時間是 2020/06/22);而取而代之的,GitLab 將使用 PowerShell 來作為 Windows 上預設的 shell。(參考

而這篇記錄,就是簡單地記錄一下 Heresy 把之前 cmd 的 script、改寫成 PowerShell 版本的紀錄。

閱讀更多»

GitLab 簡單的 C++ 專案腳本範例

之前寫過《Gitlab CI/CD 簡單介紹》,大概介紹過 GitLab CI/CD 的架構了,而 Heresy 這邊,其實也針對工作用的 C++ 專案,撰寫了對應的腳本了。

雖然實際上還是有點問題,不過目前看來運作得好像也還算正常,就來稍微分享一下吧~

首先,在系統的配置上,Heresy 這邊是準備了兩台 VM 作為 GitLab Runner,一台是 Windows 10、一台是 Ubuntu,分別處理 Windows 和 Linux 的環境。

而在腳本上,則是分成了分析、建置、測試三個階段:

閱讀更多»

有趣的台灣學生數學研究網站:數感實驗室

首先,「數感實驗室」的網址是:

https://numeracy.club/

下面是官方的介紹:

數感實驗室的宗旨是讓社會大眾「看見數學」。

數感實驗室於 2016 年 4 月成立 Facebook 粉絲頁,迄今超過 44,000 位粉絲追蹤。每天發布一則數學文章,內容包括介紹數學新知、生活中的數學應用、或是數學和文學、藝術等跨領域結合的議題。

2016 年 6 月起每月舉辦給國小生「數學實驗課」,迄今已舉辦超過 40 場次,參與學生逾 1000 人次。全自製教材,透過大量手作活動、歷史故事、美勞藝術活動讓學員從做中學親手感覺數學。亦舉辦其他實體活動,如數感夏令營、親子體驗日、數據新聞講座、數據寫作分享會,參加聽眾超過 500 人次。

閱讀更多»

Flickr 修改免費帳號限制的後續

在去年十一月,被 SumgMug 收購的 Flickr 宣布要取消免費帳戶的 1TB 的使用空間,變成只剩下 1000 張照片,基本上算是宣告了免費帳號的死刑。

後來則是有又公告、11/1 以前上傳的開放式授權的公眾照片不會被刪除;而 Heresy 也抱著死馬當活馬醫的心態,去把所有的照片,都改成 CC 授權了~

而已現在來看,當時的這個動作似乎是有意義的了!因為 SumgMug 在今年 3/8,刪檔日 3/12 的前幾天,發表了一篇《Update on Creative Commons licenses and "In Memoriam" accounts.》,把 CC 授權照片的刪檔豁免權又放寬了!變成只要在刪檔前,照片是 CC 授權的,就不會被刪除了!

閱讀更多»

Flickr 免費用戶刪檔動作延到 3/12

在 Flickr 去年被 SmugMug 收購後不到一年,到了去年年底,就宣布要修改免費帳號的權益;而其新的免費方案,是僅能有 1,000 張照片,而且是會在 2019/2/5 開始把既有、超過的部分刪除的。

雖然 Heresy 有試著把照片都改成 CC 授權、想說試試看能不能規避掉刪除的動作,但是也不知道這樣做到底有沒有用?

前幾天,當想上去看看照片被刪掉沒,這才發現,原來 Flickr 又把刪檔大限延期了~現在變成是要到 3/12 才會開始刪檔了~

閱讀更多»

Gitlab CI/CD 簡單介紹

今年初,Heresy 算是終於把工作地方的 GitLab 重新架設起來了。而後來好一段時間,Heresy 則都是在研究他的 CI/CD(Continuous Integration and Deployment)到底該怎麼做,目前也算終於弄到可以動了,所以就在這邊紀錄一下吧~

不過,這篇主要是先就 Heresy 理解的概念來寫,也希望沒有理解錯誤就是了。

首先,Gitlab 的 CI/CD(官網)做的事情,實際上就是讓 Gitlab 系統,可以在特定的時候(通常是 push、merge、或是自己排程),根據所撰寫的腳本,去進行程式碼的自動化建置、測試、甚至佈署。

下面的圖,就是官方提供的 GitLab CI/CD 的示意流程圖。

閱讀更多»