我想通過 Github 操作為每個 PR 運行測驗。
我的 Github 存盤庫結構是
根目錄
- 子目錄
- 子目錄
- Java 模塊目錄
- 子目錄
- 子目錄
- 子目錄
- Java 模塊目錄
- 子目錄
- 子目錄
- 子目錄
- Java 模塊目錄
- 子目錄
- ...
在這種情況下,我只想測驗 Java 模塊。
我不想將存盤庫創建為多模塊專案
原因是它將與其他語言結合使用,因此存盤庫看起來像是基于 Java 的看起來并不好。
無論如何,通過子目錄運行 Java 測驗
我是否必須將該目錄寫入作業流檔案才能運行它?
是否可以動態查找和執行基于 Java 的目錄?
(基于 Java 的目錄可能以“Java-”為前綴)
我用 GitHub 操作作業流設定矩陣 目錄描述已經過測驗。
我想在 Github Action 中動態目錄測驗
uj5u.com熱心網友回復:
您可以在第一個作業中動態創建矩陣的輸入,然后將其用作第二個作業中矩陣的輸入。
對于所有測驗目錄都在目錄呼叫中的專案tests,您可以像這樣收集目錄:
collect_dirs:
runs-on: ubuntu-latest
outputs:
dirs: ${{ steps.dirs.outputs.dirs }}
steps:
- uses: actions/checkout@v2
- id: dirs
run: echo "::set-output name=dirs::$(ls -d tests/*/ | jq --raw-input --slurp --compact-output 'split("\n")[:-1]')"
這里棘手的部分是如何構造dirs輸出:
- 首先,我們列出目錄中的所有目錄
tests/ - 其次,jq 將輸出格式化為 JSON 陣列。例如,如果目錄包含子目錄
a、b和c,則輸出設定為["a","b","c"]。
在第二個作業中,您可以使用基于該輸出的矩陣:
run_tests:
needs: collect_dirs
runs-on: ubuntu-latest
strategy:
matrix:
dir: ${{ fromJson(needs.collect_dirs.outputs.dirs) }}
steps:
- run: echo ${{ matrix.dir }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/453988.html
