
Системы сборки *
Системы автоматизации сборки
Готовим C++. Система сборки Bake
Наверное, большинство из вас согласится, что на сегодняшний день наибольшую популярность среди систем сборки для проектов на C/C++ имеет CMake. Каково же было мое удивление увидеть в проекте на новой работе собственную систему сборки - Bake.
В этой статье я бы хотел описать основные возможности этой системы, чем она отличается от других подобных систем и показать как на ней можно решить различные задачи, которые возникают в процессе разработки программы.
Bake - это кросс-платформенная система сборки для проектов написанных на С/С++, нацеленная в первую очередь на встраиваемые системы. Bake написан на Ruby, с открытым исходным кодом, который по-прежнему поддерживается (в разработке с 2012 г.)
Как привести проект в чувство

Представьте ситуацию, вы первый день на новом для вас проекте, с чего будете начинать? Опишите свои шаги.
Так звучит один из популярных вопросов на собеседовании для фронтенд-разработчиков. Я не знаю, что хочет услышать человек, задающий этот вопрос, но у меня есть ответ на его техническую составляющую и бэклог на несколько месяцев вперед.
# Вышел релиз GitLab 13.4 с хранилищем HashiCorp для переменных CI и Kubernetes Agent

Вышел релиз 13.4 с хранилищем HashiCorp для переменных CI, Kubernetes Agent и центром безопасности, а также переключаемыми фичами в Starter
В GitLab мы всегда думаем о том, как помочь пользователям снизить риски, повысить эффективность и скорость поставки на вашей любимой платформе. В этом месяце мы добавили немало полезных новшеств, которые расширяют возможности безопасности, снижают количество уязвимостей, повышают эффективность, упрощают работу с GitLab и помогают вашей команде поставлять фичи ещё быстрее. Мы надеемся, что вам пригодятся основные фичи релиза, а также 53 другие новые фичи, добавленные в этом релизе.
Проблема «умной» очистки образов контейнеров и её решение в werf

В статье рассмотрена проблематика очистки образов, которые накапливаются в реестрах контейнеров (Docker Registry и его аналогах) в реалиях современных CI/CD-пайплайнов для cloud native-приложений, доставляемых в Kubernetes. Приведены основные критерии актуальности образов и вытекающие из них сложности при автоматизации очистки, сохранения места и удовлетворения потребностям команд. Наконец, на примере конкретного Open Source-проекта мы расскажем, как эти сложности можно преодолеть.
Введение
Количество образов в реестре контейнеров может стремительно расти, занимая больше места в хранилище и, соответственно, значительно увеличивая его стоимость. Для контроля, ограничения либо поддержания приемлемого роста места, занимаемого в registry, принято:
- использовать фиксированное количество тегов для образов;
- каким-либо образом очищать образы.
Jenkins Pipeline: заметки об оптимизации. Часть 1

Меня зовут Илья Гуляев, я занимаюсь автоматизацией тестирования в команде Post Deployment Verification в компании DINS.
В DINS мы используем Jenkins во многих процессах: от сборки билдов до запуска деплоев и автотестов. В моей команде мы используем Jenkins в качестве платформы для единообразного запуска смоук-проверок после деплоя каждого нашего сервиса от девелоперских окружений до продакшена.
Год назад другие команды решили использовать наши пайплайны не только для проверки одного сервиса после его обновления, но и проверять состояние всего окружения перед запуском больших пачек тестов. Нагрузка на нашу платформу возросла в десятки раз, и Jenkins перестал справляться с поставленной задачей и стал просто падать. Мы быстро поняли, что добавление ресурсов и тюнинг сборщика мусора могут лишь отсрочить проблему, но не решат ее полностью. Поэтому мы решили найти узкие места Jenkins и оптимизировать их.
В этой статье я расскажу, как работает Jenkins Pipeline, и поделюсь своими находками, которые, возможно, помогут вам сделать пайплайны быстрее. Материал будет полезен инженерам, которые уже работали с Jenkins, и хотят познакомиться с инструментом ближе.
Вышел релиз GitLab 13.3 с полным покрытием фаззинг-тестированием и матрицей сборки для CI/CD

DevSecOps помогает командам обнаруживать и устранять неисправности и уязвимости на ранних стадиях разработки ПО. В GitLab 13.3 создавать безопасное программное обеспечение стало проще благодаря тестированию фаззингом, интегрированному в ваш рабочий процесс разработки. Фаззинг-тестирование, направленное на полное покрытие кода, вместе с запуском DAST (динамического тестирования безопасности приложений) по требованию помогут обнаруживать реальные уязвимости программного обеспечения быстрее и эффективнее. Кроме того, с новой матрицей сборки для CI/CD станет проще выпускать релизы более часто. Наконец, панель состояния подов повысит эффективность работы специалистов по эксплуатации за счёт сокращения переключений контекста: все данные о состоянии подов Kubernetes теперь находятся в одной панели. Мы надеемся, что вам понравятся основные фичи релиза, а также ещё 69 новых фич, включённых в этот релиз.
Сборка сложных Node.js проектов утилитой run-z
Есть несколько десятков взаимосвязанных пакетов в рабочем дереве (Yarn Workspaces).
Надо собирать несколько из них. Часто, быстро, и в правильном порядке.
Существующие инструменты либо собирают всё сразу и долго, либо собирают в произвольном порядке, что некорректно и не всегда возможно.
Решение — run-z
Make на мыло, redo сила

Вышел релиз GitLab 13.2 с планированием итераций и нагрузочным тестированием производительности

GitLab 13.2 помогает командам управлять планированием проектов с итерациями майлстоунов, улучшать совместную работу для более быстрого реагирования с диффами для вики-страниц и общую производительность и эффективность с нагрузочным тестированием производительности.
Композитная сборка как альтернатива buildSrc в Gradle

В Gradle — системе автоматической сборки — подход с buildSrc уже успел стать стандартом для реализации собственных плагинов и задач, а также создания общих конфигураций, например списков зависимостей и версий. Но у него есть существенный недостаток: при изменении buildSrc кеш сборки становится недействительным.
При этом Gradle предоставляет альтернативный подход — композитные сборки, лишённые этого недостатка. В этой статье я расскажу, как использовать композитную сборку вместо buildSrc и с какими сложностями можно столкнуться при миграции.
Тесты на pytest с генерацией отчетов в Allure с использованием Docker и Gitlab Pages и частично selenium
Этот текст предназначен для начинающих тестировщиков, желающих понять как делать отчеты на allure с историей тестов, также разъяснить где их хранить, чтобы в отчет мог заглянуть любой участник вашей команды.

Рабочий репозиторий с финальной версией рабочего кода и инфраструктуры
Ссылка на отчеты после прогона тестов
Когда я хотел добавить в gitlab автотесты в стеке python, allure, docker, то я выяснил, что толковых статей на эту тему нет. Пришлось разбираться самостоятельно и как результат проб и ошибок появилась эта статья, которая скорее является гайдом, частично затрагивающим написание тестов, но наибольший фокус именно на выстраивании инфраструктуры. Если у вас уже написаны тесты на allure, то вы сразу можете переходить к разделу настройки инфраструктуры. Отмечу, что текст НЕ затрагивает написание UI тестов, но я затрону инфраструктуру для них в отдельном блоке.
PVS-Studio: Анализ pull request-ов в Azure DevOps при помощи self-hosted агентов

Статический анализ кода показывает наибольшую эффективность во время внесения изменений в проект, поскольку ошибки всегда сложнее исправлять в будущем, чем не допустить их появления на ранних этапах. Мы продолжаем расширять варианты использования PVS-Studio в системах непрерывной разработки и покажем, как настроить анализ pull request-ов при помощи self-hosted агентов в Microsoft Azure DevOps, на примере игры Minetest.
Ближайшие события
Анализ merge request'ов в GitLab с помощью PVS-Studio для C#

Любите GitLab и не любите ошибки? Хотите повысить качество исходного кода? Тогда вы попали по адресу. Сегодня мы расскажем, как настроить C# анализатор PVS-Studio для проверки merge request'ов. Всем единорожного настроения и приятного чтения.
Как в компании развивался Python. Доклад Яндекса
В докладе я вспомнил эволюцию Python в компании: от первых сервисов, запаковывавшихся в deb-пакеты и раскатывавшихся на голое железо, до непростого монорепозитория с собственной системой сборки и облаком. Еще в рассказе будут Django, Flask, Tornado, Docker, PyCharm, IPv6 и другие штуки, с которыми мы сталкивались на протяжении этих лет.
Вышел GitLab 13.1 с управлением оповещениями, качеством кода и улучшениями для безопасности и соответствия требованиям

Релиз GitLab 13.1 уже доступен! Улучшения нового релиза включают расширенное управление уведомлениями и инструменты, которые помогут вам контролировать и улучшать качество кода, а также другие способы поддержания безопасности и соответствия вашего кода требованиям.
Вышел релиз GitLab 13.0 с кластерами Gitaly, иерархией эпиков на дорожных картах и автоматическим развертыванием для ECS

Что изменилось со времени 12.0
Прежде чем приступить к описанию нового мажорного релиза 13.0, мы хотели бы уделить внимание пройденному пути. Мы столького достигли с момента выхода версии 12.0! Недавно в блоге вышел специальный пост, в котором мы сделали обзор релизов GitLab с 12.0 по 12.10. Три наших фаворита из этой серии релизов это управление требованиями, сетевая безопасность контейнеров и конвейеры (в русской локализации GitLab «сборочные линии») родитель-ребенок.
Автоматизируй производство в стиле handmade
История становления и развития свойственна не только людям. Совершенствуя себя, мы совершенствуем и те вещи, которые делаем.

Не исключение и наш Банк, со временем обросший паутиной многочисленных IT-решений, в центре которой находится автоматизированная банковская система Equation (АБС). Меня же зовут Кирилл Диброва. Я занимаюсь функциональным и архитектурным развитием Equation — огромного и весьма важного для Банка программного комплекса; совсем не похожего на типичные реализации современного разработчика.
В этом посте хочу рассказать вам о той вынужденной «промышленной революции», которую пришлось осуществить devops-инженерам АБС. Итак…
«Восстание машин» часть 1: continuous delivery для базовых Docker образов

Всем привет! Меня зовут Леонид Талалаев, я работаю в Одноклассниках в команде Платформы. Более 3-х лет назад мы запустили внутреннее облако one-cloud. Сейчас под его управлением находятся тысячи серверов в 4 дата-центрах, сотни сервисов и более десятка тысяч контейнеров.
Наше облако – это технология, проверенная временем и инцидентами — вплоть до пожара в одном из наших дата-центров. По мере роста числа сервисов росла и сложность управления. Задачи, которые раньше выполнялись вручную, начинали отнимать слишком много времени и сил.
В серии статей «Восстание машин» я расскажу, как автоматизация в one-cloud помогает экономить не только время, но и деньги. Сегодня пойдет речь о том, как мы реализовали процесс непрерывной доставки изменений базовых Docker образов.
Организация распределенного CI/CD с помощью werf

werf — наша Open Source-утилита для сборки и деплоя приложений. Сегодня мы с радостью сообщаем, что werf научилась работать в распределенном режиме, начиная с версии v1.1.10 (доступна в каналах v1.1 alpha, beta, ea и stable). Для его подключения требуется минимум усилий.
Вот некоторые из примечательных особенностей нового режима:
Вклад авторов
aigrychev 258.3aionin 251.0diafour 212.0tkir 196.0Zhbert 148.0tangro 138.8nem 117.6net0pyr 112.0AloneCoder 107.2SvyatoslavMC 91.0