Пропустить сборку уже существующего локального образа. Это так сложно?
Для сборки бандла в CI/CD используется настроенный образ, сохраненный в Container Registry. Задача оптимизации - создавать образ, если его нет (например, для новой ветки) и использовать имеющийся, если он есть (пропускать сборку).
Это что, такая нетривиальная задача с кучей подводных камней?
PS:
Речь идет о некоторой общей задаче, в которой по "внешнему" условию (наличие образа, прогноз погоды и т.д.) нужно выполнять или пропускать определенную задачу (job) или целый набор задач.
PS2:
Совсем забыл, что есть и второе условие: пересобирать образ если изменился Dockerfile.
Wexter, я тоже уже подумал: да хрен с ней - с общей задачей. Решу конкретную. Именно так, как вы и предлагаете, но нет - хренушки. А все из-за второго правила, о котором я призабыл... Вот так примерно должно быть:
Владислав Лысков, по-моему задача предельно простая - собирать образ не при каждом пуше, а только если его нет или изменился Dockerfile. Вы же согласитесь, что образы бывают очень разные...
Alexey Dmitriev, Сейчас я подумал, что можно разделить на два отдельных стейджа: в первом проверять Dockerfile, а во втором наличие образа. Тогда пластинка заиграет.
Но все-таки это решение конкретной задачи, где условия это позволяют... а что если задач под условием десятки...
Дмитрий, что значит конкретную? Можно сделать задачу по проверке образа, можно сделать правило по проверке образа и вызывать их проверку в каждой нужной задаче. Это выглядит общим решением.
Можно сделать задачу по проверке образа, можно сделать правило по проверке образа и вызывать их проверку в каждой нужной задаче.
Можете поподробнее пояснить как из задачи по проверке образа результат этой проверки передать в правило, которое мы подставим к нужным задачам? Проблема как-раз в передаче этого результата.