lms*_*ant 6 maven github-actions
我们使用 GitHub Actions 进行项目的多模块 Maven CI 构建(位于https://github.com/ibm/fhir )。
我们有:
我发现我可以通过定义多个工作流程并使用内置on.pull_request.paths属性来完成类似的事情,如下所示: https ://help.github.com/en/actions/automating-your-workflow-with-github-actions/ github-actions 的工作流程语法#onpushpull_requestpaths
我想知道我是否/如何能够在job或step级别上完成类似的事情。我发现作业支持基于https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idif的条件执行,但我可以'不知道是否有任何东西可以帮助获得与该on.pull_request.paths功能类似的行为。
假设没有,有人找到了可以帮助解决这个问题的行动吗?或者也许有人可以指出我该功能的实现on.pull_request.paths?
我设法创建了一个步骤,通过使用最新的 PR 提交 ( )git diff来区分分支并过滤输出以选择路径,从而完成我需要的操作。问题是:github.base_ref${GITHUB_SHA}
github['base_ref']语法(大概是由于下划线?)origin/ - name: Conditional test
env:
BASE: origin/${{ github['base_ref'] }}
run: |
paths=(
path1
path2/src
path3/src/main
)
if [ -n "$(git --no-pager diff --name-only ${BASE} ${GITHUB_SHA} -- ${paths[@]})" ]; then
echo "Changes affect module, running ALL"
mvn -B test -P all-tests --no-transfer-progress
else
echo "No changes affect module, running MINIMAL"
mvn -B test -P minimal-tests --no-transfer-progress
fi
Run Code Online (Sandbox Code Playgroud)
我对 GitHub 操作没有足够的经验,不知道我们是否最好将这种逻辑封装在自定义操作中,但现在我只是要这样做以避免额外的外部依赖。
| 归档时间: |
|
| 查看次数: |
2171 次 |
| 最近记录: |