Fastlane git_commit action - пропустить, если нечего коммитить - PullRequest
0 голосов
/ 20 марта 2019

Я использую действие git_commit :

git_commit (путь: "*", message: "message")

Это действие не выполненоесли нечего совершать.Как я могу продолжить выполнение своего скрипта Fastlane, даже если нечего коммитить?

То, что я ищу, можно выполнить с помощью любого из двух вариантов:

  1. Добавить несколькопараметр для действия git_commit, поэтому сценарий не будет аварийно завершен, если нет ничего для фиксации (а, скорее, продолжения)
  2. Проверьте, есть ли какие-либо изменения, и только после этого вызовите git_commit.

Я не нашел способа сделать это с помощью метода 1, поэтому Я ищу реализацию со вторым подходом.

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Вы можете реализовать скрипт, который сообщает вам, есть ли поэтапные изменения, а затем использовать выходные данные, чтобы определить, следует ли создавать коммит.

Следующий скрипт возвращает 1, если есть какие-либо поэтапные изменения, в противном случае 0.

#!/bin/bash

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

Предполагая, что вы назовете сценарий CheckStagedFiles , вам придется добавить следующее в свою полосу:

shouldCommit = sh(".CheckStagedFiles.sh")
if shouldCommit
    git_commit(path: "*", message: "message")
end
0 голосов
/ 20 марта 2019

Вы можете попытаться подтвердить, что статус чистый, перехватить исключение и обработать его с помощью git commit:

begin
  ensure_git_status_clean
rescue
  git_commit
end

В качестве альтернативы вы можете использовать действие sh, чтобы делать все, что вы хотите в оболочке

...