動作參考
動作是純資料:參數宣告加上一段 shell 樣板。執行路徑上沒有任何東西認識動作——流程在你儲存任務時就編譯成一段純腳本,這也是遠端執行器完全不需要知道動作存在的原因。
內建動作共 29 個,分成八類。
通用
| 動作 | 識別字 | 作用 |
|---|---|---|
| 執行命令 | shell.run | 在工作目錄執行一段 shell,最常用的萬用動作。 |
| 輸出訊息 | shell.echo | 把一段文字寫進建置日誌,方便標記進度。 |
| 等待 | shell.sleep | 暫停指定秒數,常用在等待服務啟動。 |
| 設定環境變數 | shell.env | 往 $WALIS_ENV_FILE 追加,為後續步驟設定變數。 |
| 切換目錄 | shell.cd | 切換目錄,後續步驟都會在這裡執行。 |
檔案
| 動作 | 識別字 | 作用 |
|---|---|---|
| 建立目錄 | file.mkdir | 已存在時不會失敗。 |
| 複製檔案 | file.copy | 檔案或目錄皆可。 |
| 移動檔案 | file.move | 移動或改名。 |
| 刪除檔案 | file.remove | 路徑不存在時不會失敗。 |
| 壓縮成 zip | file.zip | 把目錄或檔案壓成 zip。 |
Git
| 動作 | 識別字 | 作用 |
|---|---|---|
| Git Clone | git.clone | 可指定分支與深度。 |
| Git Checkout | git.checkout | 切換到指定分支或提交。 |
| Git Pull | git.pull | 拉取最新的提交。 |
Node
| 動作 | 識別字 | 作用 |
|---|---|---|
| 安裝相依套件 | node.install | 依 lock 檔安裝。 |
| 執行 npm script | node.script | 執行 package.json 裡的 script。 |
| 執行 npx 指令 | node.npx | 用 npx 執行套件提供的指令。 |
.NET
| 動作 | 識別字 | 作用 |
|---|---|---|
| dotnet restore | dotnet.restore | 還原 NuGet 相依套件。 |
| dotnet build | dotnet.build | 建置專案或方案。 |
| dotnet test | dotnet.test | 執行測試專案。 |
| dotnet publish | dotnet.publish | 產生發行輸出。 |
容器
| 動作 | 識別字 | 作用 |
|---|---|---|
| Docker Build | docker.build | 建置映像檔。 |
| Docker Push | docker.push | 推送映像檔到 registry。 |
| Docker Compose | docker.compose | 以 compose 啟動或更新服務。 |
部署
| 動作 | 識別字 | 作用 |
|---|---|---|
| SSH 遠端執行 | deploy.ssh | 透過 SSH 在遠端主機執行命令,常用於重啟服務或跑部署腳本。 |
| rsync 同步 | deploy.rsync | 把目錄同步到遠端主機。 |
| scp 上傳 | deploy.scp | 把檔案複製到遠端主機。 |
| HTTP 請求 | deploy.http | 呼叫一個端點,例如觸發部署或送出通知。 |
檢查
| 動作 | 識別字 | 作用 |
|---|---|---|
| 檢查檔案存在 | check.file | 檔案不存在時讓建置失敗。 |
| 檢查指令可用 | check.command | 指令不在 PATH 上時讓建置失敗。 |
每個步驟的三個開關
流程中的每個步驟都帶三個開關,與它用哪個動作無關:
- 啟用這個步驟——關掉就略過,不會讓建置失敗。
- 失敗時繼續往下執行——越過非零結束碼繼續。沒開的話,後續步驟會標記為
Skipped。 - 與前一步同時執行——見平行群組。
自訂動作
自訂動作跟內建動作結構相同,以 JSON 存在資料庫。你宣告參數、寫一段 shell 樣板;樣板語法記在專案的 Docs/actions.md。自訂動作會跟著匯出與匯入一起走。
如果你要的是行為而不是樣板——邏輯、分支、呼叫 API——那應該寫外掛。