В четверг, 8 августа 2019 года, GitHub анонсировал запуск в тестовом режиме сервиса GitHub Actions с поддержкой функций непрерывной интеграции и доставки (CI/CD). Он позволяет создавать простые, но мощные пайплайны, а также автоматизировать процесс компиляции и доставки программного обеспечения. С помощью Actions разработчики могут быстро создавать, тестировать и развертывать код из репозиториев GitHub в облаке с помощью Azure.
Вы можете найти первую сборку команд Actions, сгруппированную в четыре репозитория на GitHub:
- actions (вход в систему) – аутентификация с подпиской Azure;
- appservice-actions – развертывание приложений Azure App Services с использованием функций Web Apps и Web Apps for Containers;
- container – подключение к реестрам контейнеров, включая Docker Hub и Azure Container Registry, а также возможность создавать и отправлять образы контейнеров;
- k8s-actions – развертывание кластера Kubernetes с использованием службы Azure Kubernetes (AKS).
Каждый из репозиториев содержит документацию и примеры, которые помогут вам использовать GitHub для CI/CD, а также развертывать свои приложения в Azure.
Как подключиться к Azure?
Вход в систему (azure/actions) позволяет безопасно подключаться к логину Azure, на который подписан клиент. Процесс требует введения специальной команды, которая может быть внесена с помощью командной строки в соответствии с инструкциями. Используйте встроенное секретное хранилище GitHub Actions для безопасного хранения результатов этой команды.
Если ваш рабочий процесс включает контейнеры, вы также можете использовать команды azure/k8s-actions/docker-login и azure/container-actions/aks-set-context для подключения к таким службам, как Container Registry и AKS соответственно.
Эти команды помогают установить контекст для остальной части рабочего процесса. Например, после того, как вы использовали container-actions/docker-login, следующий набор может выполнять такие задачи, как создание, тегирование и отправка изображений контейнеров в их реестр.
Развертывание веб-приложения
Azure App Service – это платформа для управления развертыванием и масштабированием веб-приложений. Вы можете легко развернуть свое веб-приложение с помощью команд appservice-actions/webapp и appservice-actions/webapp-container. Команды appservice-actions/webapp указывают имя приложения и путь к архиву (* .zip, * .war, * .jar) или расположение в папке для развертывания.
Appservice-actions/webapp-container поддерживает развертывание контейнерных приложений, в том числе мультиконтейнерных. В сочетании с container-actions/docker-login вы можете полностью контролировать рабочий процесс, который создает образ контейнера, помещает его в реестр, а затем развертывает его в веб-приложениях.
Развертывание в Kubernetes
Команды k8s-actions/k8s-deploy помогает вам подключаться к кластеру Kubernetes, развертывать манифесты, заменять артефакты, проверять состояние развертывания и обрабатывать секретные объекты в AKS.
Команды k8s-actions/k8s-create-secret используются для создания секретных объектов Kubernetes, которые помогают вам контролировать использование конфиденциальной информации, такой как пароли и токены API. К ним, в частности, относится реестр Docker, который используется самим AKS для извлечения собственного образа из реестра. Эта команда позволяет заполнить кластер Kubernetes значениями из интегрированного секретного хранилища GitHub Actions.