#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, но безрезультатно. Похоже, что оператор сравнения работает не так, как ожидалось (особенно в первых двух случаях — как это всегда может быть правдой, если строки не равны??).