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»