Подтвердить что ты не робот

Каковы интересные и интересные вещи, которые вы делаете во время автоматизации сборки?

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

  • Создание документации кода
  • Использование метрик кода для измерения качества сборки и сбоя сборки, если установленные метрики нарушены.
4b9b3361

Ответ 1

Сброс исполняемых файлов на http://virustotal.com для проверки на вирусы по всем основным антивирусным программам.

Не то, чтобы мы думали, что наши exes содержат вирусы, но иногда вы получаете ложный позитив, и вы не хотите, чтобы он был клиентом, который его нашел. 8 -)

Ответ 2

У нас есть аккаунт Twitter, поэтому мы можем проверить его статус в любое время из любого места

Ответ 3

У нас есть кнопка Staples easy, которую мы подключили, чтобы отключить сборку при нажатии.

Ответ 4

Создайте отчет для любого TODO/FIXME и т.д., которые могут быть разбросаны по всему коду.

Ответ 5

Вот некоторые вещи, которые я сделал, делаю или планирую делать:

  • Обновить индикатор трафика (с помощью гаджета X10), чтобы указать статус сборки (зеленый = хороший, желтый = здание, красный = крик!).
  • Создайте документацию по коду, затем обновите вики проекта с помощью документации.
  • Другие обновления wiki проекта, такие как размещение текущего номера версии, предоставление ссылки для загрузки и т.д.
  • Разверните (и откатите, если необходимо) тестовый сервер, на котором выполняется ручное тестирование. Я обычно делал это с помощью VMWare, поэтому "развертывание" действительно является созданием нового экземпляра виртуальной машины.
  • Автоматически перемещать билеты, ожидающие сборки, в QA для тестирования.
  • Создавайте отчеты о дефектах для неудачных тестов, неудачных сборок и предупреждений компилятора.
  • Пометьте сборку в управлении версиями (также примените информацию о версии).
  • Запланируйте обзор после X или более неудачных сборок в течение Y дней. (например, если три ошибки происходят через неделю, нам нужно встретиться, чтобы выяснить, что происходит).
  • Запланируйте вечеринку "пицца и пиво" ​​для беспроблемных недель.
  • Слушайте громкую "ча-цзин!". звук в системе PA, когда какая-либо функция, которую мы знаем, приведет к завершению новой продажи. В моей старой компании наша группа продаж любила эту бесполезную функцию:).

Ответ 6

Извлеките случайное изображение с сайта failblog.com, чтобы подключиться к сообщению с ошибкой сборки.

Ответ 7

Автоматически продвигать рабочий процесс вашей проблемы.

Мы написали пользовательский плагин для нашего Bamboo CI-сервера, который собирает все проблемы JIRA, связанные со сборкой (определенные из комментариев svn commit) и проверяет их статус в JIRA.

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

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

Ответ 8

Разверните веб-сайты непосредственно для тестирования серверов развертывания.

Ответ 9

Мы применяем цифровую подпись ко всем исполняемым двоичным файлам. Конструкция script делает это автоматически.

Ответ 10

Несколько вещей.

  • Загрузка pdb в Symbol/Source Server < - неоценимая для отладки дампов аварийной ситуации winqual.
  • Запустить тесты в установщиках, развернутых в VM через CC.NET
  • Создайте базовую виртуальную машину для тестирования через CC.NET и разверните ее во всех QA
  • Возьмите копию этого изображения виртуальной машины и используя EggPlant выполнить автоматизированное тестирование пользовательского интерфейса

Ответ 12

Различные проекты, на которых я был, имели большие публичные показы того, кто последний раз зарегистрировался и кто нарушил сборку. Мы сделали это с Build-o-matic, и я написал Team Piazza для отображения той же информации для Team City.

Ответ 13

Управляемый код:

  • Обновить все файлы AssemblyInfo с согласованной версией
  • Запустите StyleCop и FxCop и убедитесь, что код красив и хорошо себя ведет!

Исходный код:

  • Запустите файл depend.exe через двоичные файлы и убедитесь, что во время выполнения не выполнялись зависимости от времени выполнения отладки. •
  • Используйте файл manifest.exe для удаления файлов манифеста и проверки зависимостей отладки - все это происходит везде!
  • Создание привязок python для кода С++ с помощью SWIG

Ответ 14

Для разработки Java мы используем:

  • JUnit дополняется Cobertura (Cobertura определяет, какие части кода не имеют покрытия для тестирования)
  • Найти ошибки - инструмент, который просматривает код, ищущий ошибки и уязвимости
  • Инструмент Hudson (см. hudson.dev.java.net [Я не могу писать гиперссылки еще!]), который управляет построением и тестированием программного обеспечения. Он имеет такую ​​функцию, как светофор AoP (выше) - синяя успешная сборка и все модульные тесты прошли, желтая успешная сборка и некоторые модульные тесты потерпели неудачу, неудача Red-build.

Хадсон также

  • Управляет созданием программного обеспечения через плагины для SVN, Continuus и т.д.
  • Сохраняет историю всех сборок - позволяет отображать результаты тестов Junit и Find Bugs в графиках трендов
  • Отправляет письма всем заинтересованным сторонам всякий раз, когда сборка приводит к изменению состояния (например, от синего до желтого, от красного до синего).
  • Вся информация представлена ​​на простой внутренней веб-странице.

Ответ 15

Мы строим проекты BizTalk 2006:)

Ответ 16

Мы проводим анализ бинарной совместимости (используя рефлексию) против нашего последнего публичного выпуска, чтобы убедиться, что мы случайно не вносим двоичные нарушения. Всякий раз, когда мы вынуждены нарушать изменение, мы добавляем конкретный api в список "принятых изменений нарушения", так что следующая сборка может пропустить тестирование. Когда пришло время для выпуска, у нас есть полный список API-интерфейсов, которые ломаются в новой версии.

Ответ 17

У нас есть веб-приложение, и мы поставили тестирование производительности и проверим проверку HTML/CSS в тестовых сценариях.

Ответ 18

У нас была сборка script, которая автоматически помещала конструкцию и SVN и развертывала приложение на сервере приложений WebSphere.

Ответ 19

Для Java вы также можете использовать Ivy для автоматического захвата любых отсутствующих библиотек. Например, если вы используете Hibernate, вы можете или не захотите включить эти библиотеки в свою версию.

Ответ 20

Reset тестовый db в шаге Post build:

  • подготовить набор файлов (используя задачу TemplateFile)

Используйте эти файлы для

  • удалить тест db
  • возьмите резервную копию центрального db
  • восстановить его в новом экземпляре db test
  • запускать sql-скрипты инициализации в test db (используя задачу Sql.Execute)
  • convert (с помощью задачи Xml.XslTransform) xml файлы данных в sql файлы (вставки)
  • запустите их на тестовом db

После этого у нас есть чистый тест db, с правильной схемой, все фиксированные данные из центрального db, а затем некоторые дополнительные тестовые данные.

Было бы лучше, если бы схема и фиксированные данные также были в сопоставимых данных и sql файлах, но это WIP. Центральный db еще не установлен, но должен находиться в контроле источника.

Ответ 21

Запуск модульных тестов и инструментов анализа кода, таких как NDepend, Gandarme. Результаты публикуются CC.Net

Ответ 22

Как встраивать временную метку времени сборки в каждое построенное изображение?

<ItemGroup>
  <StampFile   Include="BuildTimestamp.cs"/>
</ItemGroup>

<Target Name="BuildTimestamp" 
        Outputs="@(StampFile)">
  <Message Text="Building Timestamp..." />
  <Touch
     AlwaysCreate = "true"
        Files="@(StampFile)" />

    <WriteLinesToFile
        File="@(StampFile)"
        Lines='public static class Build { public static string Timestamp = "%(StampFile.CreatedTime)" %3B }'
        Overwrite="true"/>
</Target>

Вы можете расширить это, включив имя машины, фазу луны и т.д.

Ответ 23

Несколько вещей, которые мы сделали:

  • Цифровая подпись всех exes
  • Архив pdbs
  • Создание установщиков с помощью WIX
  • Производить полные файлы .iso для программного обеспечения, которое распространяется на CD или DVD.

Ответ 24

Вот некоторые вещи, которые я обычно имею в Непрерывная интеграция:

  • вычислительные метрики кода и статистика производительности (захваченные нашей средой, в то время как тесты выполняются;
  • выполнение тестов качества кода, которые обеспечивают соблюдение определенных принципов разработки (например, присвоение имен, неизменяемость, допустимые ссылки);
  • обновление онлайн-документации, которая генерируется из кода;
  • установка пакетов установки (WiX и ClickOnce) на сервер развертывания и обновление манифеста, необходимого для автоматического обновления;
  • обновление страницы "Загрузка" для проектов с открытым исходным кодом;
  • уведомление всех вовлеченных сторон о создании и результатах.

Ответ 25

Мы используем 'checkstyle' (http://checkstyle.sourceforge.net/anttask.html) для создания отчета для кода, который может быть недавно зарегистрирован и не проверен (формально) до создания разработчика. Кроме того, я написал несколько пользовательских задач, которые выполняют следующие действия:

  • Проверьте свойства подключения к БД и попытайтесь установить фактическое соединение с БД (простой код JDBC) и сообщите, есть ли какие-либо проблемы с учетными данными пользователя и т.д.
  • Добавьте имя пользователя и временную метку последней сборки в код
  • Отправлять уведомление нашему корпоративному клиентскому клиенту (пользовательский список) со статусом сборки

Есть еще несколько задач, но они специфичны для внутренней среды  связанных с ним.

Ответ 26

У нас есть Nabaztag/tag, показывающий, есть ли какие-либо ошибки на сервере сборки.

Ответ 27

Я действительно удивлен, что никто не упоминает об обновлении конфигурационных файлов! Мы обновляем наши конфигурационные файлы b на основе среды, которую мы строим, для использования сборки script. Он экономит как минимум 20 монет, которые потребуется для замены всех соединений и настроек приложения. Другие вещи, которые мы делаем, это:

Обновить номер версии
Перейти к тестовым серверам
Анализ кода запуска
Статус создания электронной почты
Запуск некоторых сценариев базы данных

Ответ 28

Я не читал больше половины ответов здесь, но я надеюсь, что некоторые из них являются "новыми":

  • Установка и обновление старой версии для проверки различий файлов с новой установкой (проверьте нашу конфигурацию обновления развертывания)
  • Разверните наше основное приложение и внешние системные адаптеры на пользовательский Jboss (включенный в проект/выпуск), запустите его и запустите тестовые комплекты SoapUI, чтобы проверить сквозную функциональность (также дополнительный тест для нашей автоматизации развертывания)
  • Примените дельта-скрипты к предыдущей версии базы данных, а затем выполните структурное сравнение с новой установкой, чтобы создавать новые таблицы, столбцы и т.д. во время обновлений.
  • Опубликуйте нашу документацию по выпуску в Confluence (мы в основном запускаем нашу полную версию script каждую ночь), как предварительный просмотр следующей версии из trunk

Ответ 29

Мы делаем много: с MSBUILD

  • Получение источников
  • Обновить информацию о сборке с меткой времени и последним набором изменений в информации о файле и версии
  • Compile:)
  • Запуск тестов с Galio
  • Создать отчет об испытаниях с текущей меткой времени и опубликовать его в IIS
  • Создайте пакеты Zip из всех необходимых двоичных файлов.
  • Опубликовать пакеты Zip на SVN
  • Отменить SLN файл из TFS
  • Удалить все файлы bin/obj
  • Опубликовать исходный код SVN
  • Отправлять электронную почту после успеха или неудачи сборки
  • Развертывание приложения с использованием сценариев NANT

Ответ 30

Помимо версий, подписи и тестирования и т.д., уже упомянутых здесь несколько раз, мы также:

  • запустите spdisposeCheck для sharepoint-dll
  • запустите sigcheck (из sysinternals), чтобы создать хороший обзор версий и прикладных сертификатов.