Создание рабочих процессов CI/CD
Создавайте практические конвейеры CI/CD для автоматической сборки, тестирования и развёртывания кода после отправки изменений или запросов на слияние.
«Создание рабочих процессов CI/CD» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Добро пожаловать в CI/CD
В этом уроке вы научитесь создавать мощные конвейеры непрерывной интеграции (CI) и непрерывного развёртывания (CD) с помощью GitHub Actions.
CI/CD автоматизирует процесс разработки программного обеспечения — от изменения кода до развёртывания, делая его быстрее и надёжнее.
Почему CI/CD важен
Почему автоматизация так важна в современной разработке программного обеспечения?
- Быстрая обратная связь: автоматически запускайте тесты, чтобы выявлять ошибки и проблемы интеграции на ранних этапах.
- Единообразная сборка: обеспечивайте выполнение каждой сборки по одним и тем же шагам, уменьшая количество проблем «у меня на компьютере работает».
- Надёжные выпуски: выпускайте новые функции или исправления уверенно и с меньшим риском ошибок из-за ручных действий.
- Улучшение совместной работы: команды часто и беспрепятственно интегрируют изменения, сводя к минимуму конфликты при объединении.
GitHub Actions: основные понятия
GitHub Actions использует рабочие процессы, заданные в файлах YAML. Эти файлы находятся в специальном каталоге вашего репозитория: .github/workflows/.
Рабочий процесс определяет последовательность заданий, а каждое задание содержит шаги, выполняющие команды или использующие готовые действия. Так вы сообщаете GitHub, что нужно сделать!
Создание первого рабочего процесса CI
Создадим простой рабочий процесс CI, запускаемый при каждом событии push в вашем репозитории. Он настроит Node.js и смоделирует процесс сборки проекта.
Сохраните это содержимое в репозитории по адресу .github/workflows/ci.yml:
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Build project
run: node build.jsИмитация скрипта сборки
Команда node build.js в рабочем процессе выполнит подобный скрипт. Этот скрипт имитирует компиляцию, объединение или подготовку кода приложения.
Попробуйте запустить его, чтобы увидеть результат:
console.log("Starting project build...");
console.log(" - Compiling source files...");
console.log(" - Bundling assets for deployment...");
console.log("Build process finished successfully!");Добавление автоматизированных тестов
Важная часть CI — запуск автоматизированных тестов. Расширим рабочий процесс и добавим шаг тестирования после установки зависимостей. Если тесты завершатся с ошибкой, рабочий процесс завершится с ошибкой, не позволяя ненадёжному коду продвигаться дальше!
Добавим шаг test следующим образом:
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Run tests
run: node test.js
- name: Build project
run: node build.jsИмитация скрипта тестирования
Вот простой скрипт test.js, который может выполнять ваш рабочий процесс. В настоящем проекте использовались бы средства тестирования, такие как Jest или Mocha, но этот пример демонстрирует принцип выполнения тестов.
Запустите его, чтобы увидеть имитированный результат тестирования:
console.log("Running automated tests...");
const allTestsPass = Math.random() > 0.1; // Simulate 90% chance of passing
if (allTestsPass) {
console.log("All 12 tests passed successfully!");
} else {
console.error("Tests failed! Please fix the errors.");
process.exit(1); // Exit with a non-zero code to indicate failure
}Знакомство с непрерывным развёртыванием (CD)
Если CI сосредоточен на сборке и тестировании, то непрерывное развёртывание (CD) идёт дальше: оно автоматически развёртывает приложение на сервере или в облачной службе после успешного прохождения всех проверок CI.
Распространённые триггеры CD:
- создание нового тега Git, например
v1.0.0; - отправка изменений в определённую ветку, например
mainилиproduction; - создание выпуска GitHub.
Простой рабочий процесс CD
Вот рабочий процесс, который запускается при создании нового тега Git и содержит имитацию шага развёртывания. В реальном сценарии этот шаг взаимодействовал бы с вашим поставщиком услуг размещения, например AWS, Azure или Heroku.
Сохраните этот файл по адресу .github/workflows/cd.yml:
name: Deploy to Production
on:
push:
tags:
- 'v*.*.*' # Triggers on tags like v1.0.0, v1.2.3
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Simulate deployment
run: |
echo "Deploying application to production server..."
echo "Version: ${{ github.ref_name }}"
echo "Deployment complete!"
# In a real scenario, you'd use a deployment action here
# e.g., aws-actions/configure-aws-credentials, appleboy/ssh-actionПроверка рабочего процесса CI/CD
Какие из перечисленных пунктов являются основными преимуществами внедрения конвейеров CI/CD?
Итоги: создание CI/CD
Вы научились создавать надёжные рабочие процессы CI/CD с помощью GitHub Actions!
- Мы определили CI/CD и его преимущества для современной разработки.
- Мы изучили основную структуру рабочего процесса GitHub Actions в YAML.
- Мы создали рабочие процессы CI для автоматизации сборки и тестирования проектов.
- Мы разработали рабочий процесс CD для автоматического развёртывания по тегам.
Продолжайте автоматизировать процессы, чтобы быстрее выпускать код и делать это увереннее!
Часто задаваемые вопросы
Урок «Создание рабочих процессов CI/CD» бесплатный?
Да — полный текст урока «Создание рабочих процессов CI/CD» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Создание рабочих процессов CI/CD»?
Создавайте практические конвейеры CI/CD для автоматической сборки, тестирования и развёртывания кода после отправки изменений или запросов на слияние. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Создание рабочих процессов CI/CD»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в GitHub Actions
- Создание рабочих процессов CI/CD
- Пользовательские действия и Marketplace
- Секреты и переменные окружения в действиях