给定一个工作流程文件,其中包含 Maven 构建步骤,如下所示:
steps:
- name: verify
run: mvn --show-version --no-transfer-progress --update-snapshots --fail-at-end --batch-mode -Dstyle.color=always verify
由于我需要向调用添加额外的目标,所以我更愿意将其他参数分组到其他地方 - 像这样:
steps:
- name: verify
with:
args:
--show-version
--no-transfer-progress
--update-snapshots
--fail-at-end
--batch-mode
-Dstyle.color=always
run: mvn verify
不幸的是失败了
The workflow is not valid. .github/workflows/ci.yml (Line: 48, Col: 9): Unexpected value 'run' .github/workflows/ci.yml (Line: 39, Col: 9): Required property is missing: uses
按照 jonrsharpe 的提醒,关于 YAML 功能,我现在使用 folded block 标量样式 和 strip 折叠来定义环境变量,例如:
env:
MAVEN_OPTS: '-Dstyle.color=always'
MAVEN_SWITCHES: >-
--show-version
--no-transfer-progress
--update-snapshots
--fail-at-end
--batch-mode
在工作流程 YAML 的顶部,它可以将 Maven 调用重构为:
# …
steps:
- name: verify
run: mvn ${{ env.MAVEN_SWITCHES }} verify
注意:
MAVEN_OPTS
在运行命令中不会分解,因为它是自动应用的常见Maven环境变量。