Рубрики
Uncategorized

CD Chatops с Slack & Buildkite

Buildkite — это моя предпочтительная система трубопровода развертывания. Я предпочитаю Buckkite, потому что я могу запустить агентов на … Теги с DevOps, Chapops, CD.

Buildkite Является ли моя предпочтительная система трубопровода развертывания. Я предпочитаю Buckkite, потому что я могу запустить агентов по своей собственной инфраструктуре. Это означает, что я могу контролировать AWS доступ с IAM и даже запекать AMIS со всеми зависимостями для более быстрых трубопроводов.

Publickite трубопроводы могут быть вызваны Развертывание GitHub Отказ Единственный улов делает красивый интерфейс для запуска развертывания. Я недавно начал использовать SlashDeyploy (То же самое имя, но никакая принадлежность), чтобы вызвать развертывание списка Chatops от Slack. Вот как это работает.

Chatops через Slack.

SlashDeploy добавляет /развертывать команда для расслаивания. /Развертывание полезно, потому что это небольшой и острый инструмент. Это Только Триггеры развертываний GitHub. Это четкая точка интеграции с другими системами. Это означает /Развертывание может интегрироваться с любым развертыванием трубопровода. /Развертывание и Buildkite работать особенно хорошо вместе, потому что /Развертывание Карты непосредственно в строительные трубопроводы. /развертывать Также можно указать задачу развертывания GitHub (например, миграцию, семян или активацию обслуживания), которые могут обрабатываться внутри Buckkite для запуска других трубопроводов. Плюс, все это происходит в провисании, так что кто-нибудь может /развертывать ПРИЛОЖЕНИЕ или /развертывать Приложение с задачей Отказ

Создание трубопровода развертывания

Обзор трубопровода Buildkite.

Я предпочитаю непрерывное развертывание с опциями для запуска ручного развертывания при необходимости. /Развертывание Поддерживает оба сценария. /Развертывание настроен для запуска автоматического развертывания для моей предполагаемой ветви, если тесты проходят в .sslashdeploy.yml.yml. :

version: 1
environments:
  production:
    # Important to everyone see how to deploy
    respond_in_channel: true
    # For notifications
    channel: ops
    checks:
      - buildkite/mono-tests
    auto_deploy:
      # auto deploy master
      ref: refs/heads/master

Я использую пользовательский трубопроводный скрипт для обработки конкретной среды развертывания и задачи. Это точка входа в развертывание трубопровода. Трубопроводы Buildkite могут вызвать другие трубопроводы как шаг в более крупных трубопроводах. Вот пример.

Производство Развертывание не вызывает семенного трубопровода, но A dev Развертывание делает. Участники команды также могут вызвать /Развернуть приложение со семенами . Задача развертывания устанавливается на Семя в этом случае. Значение по умолчанию это развертывать . Мой скрипт трубопровода проверяет эти два значения, затем загружает соответствующий файл трубопровода через Загрузить трубопровод Buadkite Отказ Вот скелет:

#!/usr/bin/env bash

set -euo pipefail

main() {
    local environment="${BUILDKITE_GITHUB_DEPLOYMENT_ENVIRONMENT?required}"
    local task="${BUILDKITE_GITHUB_DEPLOYMENT_TASK?required}"

    local pipeline=".buidlkite/${environment}-${task}.yml"

    if [ -f "${pipeline}" ]; then
        buildkite pipeline upload "${pipeline}"
    else
        echo "Cannot handle ${envrionment}/${task} invocation!" 1>&2
        return 1
    fi
}

main "$@"

Этот подход удерживает его просто, сопоставив каждую среду/задачу к определенному Файл трубопровода Отказ Трубопроводы могут также Запустить другие трубопроводы вот так:

- label: ':rocket: :seedling:'
    trigger: mono-seed
    build:
      commit: "${BUILDKITE_COMMIT?}"
      branch: "${BUILDKITE_BRANCH?}"
      env:
        BUILDKITE_GITHUB_DEPLOYMENT_ENVIRONMENT: "${BUILDKITE_GITHUB_DEPLOYMENT_ENVIRONMENT?}"
        BUILDKITE_GITHUB_DEPLOYMENT_TASK: "${BUILDKITE_GITHUB_DEPLOYMENT_TASK?}"

Наконец, я использовал Buildkite Annotations Украсить трубопровод UI с окружающей средой и задачей. Эта информация скрыта на несколько кликов в противном случае. Это полезно при прокрутке видов трубопровода, чтобы найти соответствующую сборку. Вот скриншот производства развертывания с аннотацией.

Развертывание производства с аннотацией и пропущенным шагом.

Добавление аннотации требует добавления дополнительного шага трубопровода со связанным сценарием. Annotations Buildkite — узнать. Было проще обрабатывать пробельные чувствительные строки и подстановки переменной среды в отдельном файле. Вот соответствующие кодовые фрагменты:

# the pipeline step:
steps:
  - label: ':console: Annotate'
    command: script/buildkite/deploy-annotation | buildkite-agent annotate --style info

# The annotation script:
#!/usr/bin/env bash

set -euo pipefail

cat <

Заключение

Buildkite Долгое было мое предпочтительное программное обеспечение для трубопровода развертывания. Сейчас /Развертывание В сочетании с выделенными развертывающими трубопроводами и развертыванием развертывания Github в стиле Chatops делают установку лучше, чем когда-либо. Если вы строите новый трубопровод развертывания, то я настоятельно рекомендую Buildkite (и их упругий стек если работает на AWS) в паре с SlashDeyploy Для чата и развертывания триггеров. Это легко и просто работает — жесткое качество, чтобы найти в программном обеспечении.

Оригинал: «https://dev.to/ahawkins/cd-chatops-with-slack—buildkite-55c2»