Nano Hash - криптовалюты, майнинг, программирование

Альтернатива тегам для нескольких коммитов

В нашем конвейере CI / CD мы ищем способ выполнить часть CI с помощью cirle ci, часть развертывания с Jenkins (технические ограничения не позволяют нам выполнить развертывание с помощью circle ci).

Мы создали ветку для каждой среды (тестирование, приемка, производство), и у jenkins есть рабочие места, которые отслеживают изменения в этих ветвях и развертывают их, если применимо.

Однако мы хотели бы добавить тег к каждой фиксации, прошедшей CI (например, «ci-pass»), и проверить наличие этого тега в задании jenkins. Это, чтобы убедиться, что дрянной код не может быть развернут.

Мы думали о создании динамических тегов (например, "ci-pased- {some timestamp}"), но не уверены в этом, так как это вводит много тегов. Есть ли какая-либо альтернатива тегу, которую можно повторно использовать для разных коммитов.

Мы знаем, что вы можете перемещать теги, но мы хотим сохранить теги в каждой фиксации, прошедшей ci, чтобы любую фиксацию можно было повторно развернуть в любое время.

Любые предложения будут ценны.


Ответы:


1

Что ж, вы как бы настраиваете себя на противоречивое требование: с одной стороны, вы хотите to add a tag to every commit that has passed the CI, а с другой стороны, вы жалуетесь, что this introduces a lot of tags :)

Лично для каждой фиксации, прошедшей CI, я бы:

  • добавьте тег ci-passed-{some timestamp} - это даст вам историческую / трендовую перспективу и эту возможность идентифицировать различные развертываемые версии (при условии, что вы в конечном итоге согласитесь, что это то, что вы предпочитаете из вышеупомянутого конфликта)
  • добавить / обновить тег ci-passed-latest (или аналогичный), чтобы получить самую последнюю развертываемую версию (как правило, наиболее распространенный вариант использования), без необходимости выяснять, какой именно тег ci-passed-{some timestamp} следует использовать.

Вы также можете расширить эту схему, также закодировав среду в имени тега, чтобы четко определить, какие проверки прошли тестирование / приемку / производство (или любые другие этапы могут быть добавлены в ваш конвейер компакт-дисков в будущем).

27.06.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..