Taskfile Build Automation Tool

在撰寫一些自動化流程的時候覺得 Makefile 的寫法不習慣,或是環境的支援太薄弱嘛?覺得 Makefile 的寫法太過古老,每次撰寫都像是在寫古文嘛?給 Taskfile 一個機會吧 有別於 Makefile 的地方 基本上 Taskfile 跟 Makefile 都是為了一些自動化流程需求所發展出來的工具,既然目的相同又謂何要換呢? 它只相依一個 library 檔案,而且檔案只有約 9MB YAML 語法以及一些內建語法的支援 special variables environment variables Makefile 在 windows 太老舊 Windows 版本在 3.81 Linux 版本在 4.4 方便整合在現在流行的 CI 方式,包括 Github Action Github Actions integrate Windows 上的安裝 若是有 Chocolatey 或是 Scoop 的話有很方便的安裝指令 1 choco install go-task 1 scoop install main/task 當然 winget 也是可以 1 winget install Task.Task 若上述的工具都沒有,官網有詳細介紹各種安裝方式。 使用不同版本 (Taskfile versions) 標示 Taskfile 所使用的版本可以使用特定版本才開放的功能。可以從這邊確認一下新的版本有提供什麼不同的功能。 變數 (Variables) 在介紹變數前先參考這份簡易的範例。 ...

January 10, 2024 · 3 分鐘 · 442 字

Podman on Windows

前言 之前主要是因為 Docker Desktop 開始收費 (Docker Subscription Service Agreement | Docker) (Docker CLI 依舊免費 ) 但因為免費條件有點嚴苛,而且通常都是在為了公事使用,為了避免不小心讓公司有意外支出,就開始萌生有沒有更安全的替代解決方案。另外就是 WSL 2 已經很成熟了。 Podman 跟 Docker 目前 (2022/03) 最大的差異應該就是兩者架構不同,Docker 是傳統的 Client-Server 架構它由一個 daemon 來操作所有由 docker cli 產生的 container ,而 Podman 則是不需要 daemon 。這樣可以預防 single point of failure 不會像 docker daemon 一死底下的 container 跟著一起殉情。而多數人在講的 podman 可以 rootless 的優勢則在 docker engine 升級到 20.10 後就也支援 rootless 了,來源在此。 有人針對雙方架構畫了一個很好的圖示 圖片來源: podman_introduction 起步走 =========== ↓↓↓ 25/07/2022 Update ↓↓↓ ============== ...

March 30, 2022 · 4 分鐘 · 756 字

My Development Env Settings

2023/2/6 Updated: 調整文章順序,強調 scoop 章節,更新常用工具。 2023/10/10 Update: 調整文章描述,更新常用工具。 全新 Windows 環境上基本開發設定 會興起寫這個的念頭實在是因為這些年頭也遇到不少次重灌工作機的時候,但是安裝的工具實在太多,沒有一個 script 或是筆記實在會忘記這些設定要怎麼處理,每次重新回憶一遍也是很浪費生命。這經歷過好些年後 Windows 環境上出現不少方便的工具,恰好近期我又需要重灌工作機了,用這個機會紀錄一下,順便推廣一下我覺得超好用的工具。 先放上寫好的 script: 設定好 scoop 的安裝路徑(環境變數) 這個設定若你不太在乎硬碟空間的話是可以跳過啦,不過 scoop 軟體預設都會安裝在系統槽 (也就是 C槽),就看你個人使用習慣了。我個人是習慣避開系統槽。 這邊先設定 scoop 的安裝路徑,同時這也會是用 scoop 安裝的應用程式的根路徑。預設會是 scoop 位置下的 app 資料夾裡。 $env:SCOOP='D:\Applications\Scoop' [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User') 接下來你也可以另外設定下載下來的應用的暫存位置。預設會是在 scoop 安裝位置下的 cache 資料夾裡。 $env:SCOOP_CACHE='D:\ScoopCache' [Environment]::SetEnvironmentVariable('SCOOP_CACHE', $env:SCOOP_CACHE, 'Machine') 安裝 scoop scoop 就是這次重設環境的最重要工具,他的作用其實就跟老牌的 chocolatey 一樣,也跟 Mac 的 Homebrew 一樣。不過相對於 chocolatey,scoop 不需要 .NET Framework 4.x+ 就能執行,另外就是授權費用了, scoop 是 MIT 授權 ,是窮人的好朋友,不過也因為 bucket 是由社群提供,使用前翻閱 source code 還是比較好的,不要去選到一些私人的 bucket 你會比較有保障。官方的 bucket 可以到這邊,選擇有 official bucket 標籤的來源。 ...

January 4, 2022 · 4 分鐘 · 648 字

Using mklink to Save Disk Space

前言 系統槽空間不足的問題,坦白說在我拿到公司的電腦後就一直在捆擾我,尤其是這部電腦的前主人還灌了些很多開發工具之下顯的更加嚴重。 最一開始 一開始的時候我幾乎是每天都打開 Powershell cleanmgr /lowdisk 來清出空間,很多時候只要當天有 Windows update,都有一些些空間可以謄出來,不過依然免不了會把既有空間逐漸佔去的問題,說到底這只是個緩兵之計。所以後來就開始打開 應用程式與功能 開始砍應用程式。 幫你找出最肥的是誰 但要砍程式,也要看一下是不是真的肥,不然砍了幫助也不大,因此有一款工具可以很好的幫我辨識誰才是戰犯的好工具。 windirstat 不得不說這真的是 Windows 平台上針對此需求不可多得的好工具,不但掃的快還有圖形化的顯示與排序,可以快速看出到底你可以砍的檔案中誰才是最該死的那一個。 mklink大顯神威 不管怎麼砍應用也是會遇到砍不了的時候,這個時候就很需要將一些預設放在系統槽,但又沒有介面讓你更改的檔案放在系統槽以外的地方。不要小看這部份,若有用 windirstate 掃的話會發現,你可以騰出的空間會有數十 GB 之多。 官方文件: Microsoft Docs 這邊我們需要用到的參數其實就是「/J」,藉由產生 Junction Directory 來將一些預設放在系統槽的檔案搬移出去。 最一開始被我盯上的就是 C:\ProgramData\Package Cache 這個資料夾,畢竟當初一掃就掃出了快 10GB 的空間! 首先先將 X 槽建立一個資料夾 “DirJunction” 方便將未來使用這個方式的資料夾統一放在一起 再來將 C:\ProgramData\Package Cache 的 Package Cahce 資歷夾直接剪去 X 槽的 “DirJunction” 資料夾底下 使用 Admin 權限開啟 cmd 輸入 mklink /J "C:\ProgramData\Package Cache" "X:\DirJunction\ProgramData\Package Cache" 打完收工 你可以藉由這個方法,不斷把空間清出來 結語 說實話,在用 mklink 之前每天使用 cleanmgr 實在痛苦成效又不彰,在改用 mklink 之後確實好了很多,唯一的缺點大概就是未來 Windows 做大型更新時要先確認一下連結是否還是 Work 的狀態 ...

May 31, 2019 · 1 分鐘 · 78 字