Вы когда-нибудь спрашивали себя или своего коллегу: «Какая версия сейчас развернута в среде разработки?» или «Привет, Джон, ты вчера развернул это исправление в рабочей среде?» или «Билл, у нашего клиента два дня назад произошла ошибка. Вы помните, какая версия была развернута в то время? ».

Если подобные вопросы возникают регулярно, и вы используете Jenkins для их процесса CI / CD, этот плагин определенно для вас!

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

В Namecheap мы используем Jenkins для процессов CI \ CD. Поэтому мы решили убедиться, что всегда можем проверять каждый статус развертывания, написав плагин Jenkins под названием Deploy Dashboard.

В этой статье я покажу вам возможности плагина и способы его использования.

Визуализация с помощью Deploy Dashboard

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

Более того, можно посмотреть историю выпусков, щелкнув определенную среду.

Начало работы: добавление новой версии на панель инструментов

Предположим, у вас уже есть задание Jenkins, которое создает и развертывает ваше приложение. Единственное, что вам нужно сделать, это вызвать метод addDeployToDashboard с именем среды и параметрами версии приложения.

properties([parameters([
    string(name: 'version', description: 'App version to deploy'),
    choice(
        name: 'env',
        choices: ['dev', 'prod'],
        description: 'Environment where the app should be deployed'
    )
])])
node {
    //...
    stage("Deploy") {
        // Deploy app version ${params.version} to ${params.env} env
        
        //add release information to the dashboard
        addDeployToDashboard(
            env: params.env,
            buildNumber: params.version
        )
    }
}

Создать информационную панель

На главной странице или в папке Jenkins нажмите вкладку +, чтобы запустить мастер нового представления (если вы не видите +, скорее всего, у вас нет разрешения на создание нового представления).

На странице «Создать новое представление» дайте вашему представлению имя, выберите тип «Представление развертывания» и нажмите «ОК».

Регулярное выражение можно использовать для указания заданий, которые нужно включить в представление. (например: «.*» выберет все задания в папке).

Добавьте кнопки развертывания в вашу сборку

Бывают случаи, когда вы хотите сохранить конвейер CI отдельно от конвейера CD. В этом случае плагин Deploy Dashboard позволяет добавлять дополнительные кнопки на боковую панель сборки. Вам нужно просто вызвать buildAddUrl метод с заголовком и URL-адресом.

node {
    stage("Build") {
        String builtVersion = "v2.7.5"
        // Build app with ${builtVersion} version
        //Add buttons to the left sidebar
        buildAddUrl(title: 'Deploy to DEV', url: "/job/app-deploy/parambuild/?env=dev&version=${builtVersion}")
        buildAddUrl(title: 'Deploy to PROD', url: "/job/app-deploy/parambuild/?env=prod&version=${builtVersion}")
    }
}

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

Я надеюсь, что это поможет вам улучшить ваш опыт работы с Дженкинсом! Приглашаем вас внести свой вклад в проект на GitHub.