Fastlane git_commit动作 - 如果没有提交,则跳过

问题描述 投票:0回答:2

我用git_commit action

git_commit(路径:“*”,消息:“消息”)

如果没有提交任何内容,此操作将失败。即使没有任何提交,我如何继续执行我的Fastlane脚本?

我正在寻找的可以通过以下两个选项中的任何一个来完成:

  1. git_commit操作中添加一些参数,这样如果没有任何提交,它就不会崩溃脚本(而是继续)
  2. 检查是否有任何更改,然后才调用git_commit

我没有找到任何方法来使用方法1完成此操作,所以我正在寻找第二种方法的实现。

git version-control automation fastlane
2个回答
0
投票

您可以尝试断言状态是干净的,捕获异常,并通过git commit处理它:

begin
  ensure_git_status_clean
rescue
  git_commit
end

或者,您可以使用sh动作在shell中执行任何操作


0
投票

您可以实现一个脚本,告诉您是否存在分阶段更改,然后使用输出来确定是否应该创建提交。

如果存在任何分阶段更改,则以下脚本返回1,否则返回0。

#!/bin/bash

if [[ -n "$(git diff --name-only --cached)" ]]
then
  exit 1
else
  exit 0
fi

假设您将脚本命名为CheckStagedFiles,则必须将以下内容添加到您的lane:

shouldCommit = sh(".CheckStagedFiles.sh")
if shouldCommit
    git_commit(path: "*", message: "message")
end
© www.soinside.com 2019 - 2024. All rights reserved.