用GitHub Actions的Windows虛擬機器來編譯AutoIT / Compile AutoIT on the Windows Runer in GitHub Actions

原文约1700字,阅读约需4分钟。发表于:

GitHub Actions能跑Ubuntu,那能用它來跑其他的作業系統嗎?答案是肯定的。 虛擬機器 / Runner https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources GitHub Actions提供了很多用來運作任務的Runner。為了方便理解,我通常稱它們叫做虛擬機器。這些虛擬機器的是讓你每次在運作任務時都有個「乾淨」的環境。除了基本的作業系統和基本元件之外,許多工具都要額外安裝或配置。於是我們就需要在workflow的YAML中設定各個step。 https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions#create-an-example-workflow  GitHub Actions預設提供了Ubuntu、MacOS和Windows等不同作業系統,也有提供一些不同的版本。大多時候我們的虛擬機器都是用「ubuntu-latest」,也就是最新版的Ubuntu,但我們也可以在GitHub Actions裡使用Windows虛擬機器。 https://www.autoitscript.com/forum/topic/205731-setting-up-ci-on-github-for-autoit-scripts/  rcmaehl在AutoIT的論壇上提出了它的workflow設定檔案。不過他的步驟中加入了很多檔案存取的步驟,讓整個流程變得有點複雜。 所以我就來自己動手做一個吧。 action-AutoIT-Builder https://github.com/pulipulichen/action-AutoIT-Builder 我建立了一個用GitHub Actions來編譯AutoIT的保存庫。 這個保存庫的使用方式是必須要在GitHub的Visual Studio Code裡面運作。在已登入且有權限編輯此保存庫的前提下,按「.」可以進入該保存庫的網頁版Visual Studio Code。接下來需要修改以下兩個檔案: input/input.au3:AutoIT原始碼。 input/input.ico:圖示檔案,尺寸必須是64*64。 修改並進行commit跟push之後,GitHub Actions就會運作。 最後把編譯結果輸出在下面的Artifacts當中。 工作流設定檔 / Workflow https://github.com/pulipulichen/action-AutoIT-Builder/blob/main/.github/workflows/ci.yml 如果使用Windows作為虛擬機器,那執行環境就會是PowerShell,而不是Ubuntu的bash。兩者大多都有對應的功能,但語法需要查詢一下。跟rcmaehl的做法不同,我加入了一些設定: 用actions/checkout取出要編譯的檔案,就是上面那兩個。 用actions/cache保存AutoIT的安裝狀態:第一次執行時需要安裝,第二次之後就會直接從快取還原AutoIT安裝狀態,不用再次重安裝。同時還要用Test-Path檢查是否已經有從快取狀態還原。 用josStorer/get-current-time宣告時間變數:宣告變數之後可以給Artifect的檔案命名。網路上很多人都有類似的問題,但似乎很少人知道這個好用的action。 用actions/upload-artifact匯出編譯結果:編譯結果只會給有權限控制workflow的使用者下載。 這樣說來,以前我在Kubernetes的GitLab CI使用artifact的時候是用來保存Cypress出錯時的結果。現在用它來保存編譯結果檔,也是挺不錯的呀。 能用Windows虛擬機器編譯,對我這個Linux使用者來說真的方便很多。WINE編譯的AutoIT一直有些問題啊orz 你會想用Windows虛擬機器做些什麼呢? 歡迎下面留下你大膽的想法~ (封面圖片來源:AutoIT)

本文介绍如何在GitHub Actions中使用Windows虚拟机器编译AutoIT,作者提供了action-AutoIT-Builder库和工作流程设置文件,方便Linux用户使用。

用GitHub Actions的Windows虛擬機器來編譯AutoIT / Compile AutoIT on the Windows Runer in GitHub Actions
相关推荐 去reddit讨论