Трэвис: как выполнить этап для конкретного сообщения о фиксации

#continuous-integration #travis-ci #commit

Вопрос:

Я хотел бы выполнить этап трэвиса только для определенного сообщения о фиксации (наконец, для текстового тега в сообщении о фиксации, но давайте пока упростим). Travis допускает условное выполнение с использованием if оператора (и я предпочитаю использовать его из-за структуры моего файла travis). В документации Трэвиса упоминаются 2 переменные, которые можно использовать для получения сообщения о фиксации: commit_message и TRAVIS_COMMIT_MESSAGE я попытался использовать их обе. В этих случаях:

 - stage: Deploy
  if: commit_message = "deploy" AND type = push


- stage: Deploy
  if: $TRAVIS_COMMIT_MESSAGE = "deploy" AND type = push
 

этап выполняется всегда, независимо от содержания сообщения о фиксации.

В таком случае:

 - stage: Deploy
  if: env(TRAVIS_COMMIT_MESSAGE) = "deploy" AND type = push
 

Этап никогда не выполняется, независимо от содержания сообщения о фиксации.

Я также попытался добавить conditions: v1 в корень файл .travis, но безрезультатно. Похоже, что оператор сравнения работает не так, как ожидалось (особенно в первых двух случаях — как это всегда может быть правдой, если строки не равны??).