Рубрики
Uncategorized

Использование действий GitHub для добавления CI / CD в проект

ВВЕДЕНИЕ CI / CD в последнее время набирает тягу, с все большим количеством команд, направленных на BEC … Помечено с GitHub, весна, дежопта.

Введение

CI/CD в последнее время набирает сцепление с большим количеством команд, причем все больше и больше команд, направленных на то, чтобы стать развлеченным ориентированным, и, с тем более и большим количеством бизнесом, видя важность хороших, значимых и стабильных трубопроводов, поддерживающих код, на котором такое предприятия зависят от. Таким образом, он имеет отношение к тому, как вы можете применить его к вашему следующему проекту, а также ознакомиться с несколькими различными платформами и способами настройки CI/CD.

Чехол для CI/CD

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

Для E.g.: Разработчик работает на новой функции, которая требует расширений двух разных кодовых областей и моста к вновь созданному обслуживанию. Разработана функция, разработчик тестирует его локально, запускает его против всех возможных тестовых случаев, коллега проверяет код и дает зеленый свет, а функция выкатывается. Тем не менее, до того, как проката, в качестве хорошей практики диктует, слияние с главным филиалом было сделано в филиал объекта, а затем развернута эта новая «головка». Поскольку на месте не было никакого тестирования, и код был рассмотрен, никто не заметил, что интерфейс для одного из зависящих от операций изменился без знания этой новой функции, и в результате код был нарушен в производстве.

CI/CD может помочь предотвратить и смягчить этот тип сценариев:

  • Убедитесь, что правильный компиляция кода (да, кажется очевидным, но это проверка, которая имеет место на месте, если что-то, что и что-то, как базовый тест дыма);

  • Автоматизируйте работу модуля и тестов интеграции, если они доступны. С каждым точкой кода набор автоматизированных испытаний должен быть запущен автоматически Чтобы гарантировать, что последние изменения ничего не нарушают;

  • При необходимости следует создать мечежный выпуск и, например, действия развертывания должны быть предприняты. Они могут варьироваться от повторного помечения изображения Docker, чтобы загрузить код на внешние реестры, чтобы создать образы Docker, отправить код на платформы вверх по течению, которые обрабатывают развертывание, запускают Jenkins Jobs, развертывание органов оружия и т. Д.

Если все эти (решающие) шаги автоматизированы по пути, разработчики могут сосредоточиться на написании кода (и тесты на единицу), в то время как «забыть» остальные шаги, означающие: если вы выполняете вашу работу правильно и достаточно хорошо, обрабатываете вверх по течению С компиляцией, тестированием и развертыванием все могут быть автоматизированы (конечно, автоматизация — ложь, и вам нужно написать код для него, как мы увидим: D) для вас.

Представляем действия GitHub

Есть много способов настройки и начать работу с CI/CD, а некоторые зависят от платформы, которую вы используете (например, GitLab VS GitHub). Мы будем использовать GitHub, недавно ввел Действия GitHub бесплатно для частных репозиториев.

Действия GitHub Помогите вам автоматизировать рабочие процессы вашего программного обеспечения в том же месте, где вы храните код и сотрудничаете на запросах и проблемах повлечения. Вы можете написать отдельные задачи, называемые действиями и объединяют их для создания пользовательского рабочего процесса. Рабочие процессы — это пользовательские автоматизированные процессы, которые вы можете настроить в своем репозитории для создания, тестирования, пакета, отпуска или развертывания любого проекта кода на GitHub.

Благодаря действиям GitHub вы можете создать сквозную непрерывную интеграцию (CI) и непрерывные возможности развертывания (CD) непосредственно в вашем репозитории. GitHub Действия Подоистения встроенной непрерывной интеграции GitHub.

Чтобы начать, нам нужно создать папку, названную ..gitub Поместите его в корне нашего хранилища и там, мы можем определить наши рабочие процессы.

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

Давайте посмотрим, как мы можем настроить два шага в трубопроводе, чтобы начать наше путешествие к CI/CD: мы захочем компилировать код, и, после того, как эта работа преуспевает, мы хотим запустить наши модульные тесты автоматическим способом.

Во-первых, как обсуждалось, мы создаем ..gitub Папка в корне нашего репозитория, а внутри, новая папка, называемая рабочие процессы Это может содержать наши несколько рабочих процессов и внутри него, название нашего нового рабочего процесса, например, First-Ci.yml Отказ Наше репо выглядит как:

Базовое представление о действиях GitHub состоит в том, что они, частично, совпадают и настраиваются, поэтому из Jithub ui мы можем просмотреть доступные в настоящее время действия, а из списка мы выбираем Java Ci с Maven Отказ Пользователь должен выглядеть так:

Теперь, давайте напишем наш первый рабочий процесс, где мы скомпилируем код, пропускайте тестирование подразделения и последующие, запустите только тесты:

name: Java CI with Maven

on:
  push:
    branches: [ master ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Build with Maven
        run: mvn clean compile install -DskipTests --file pom.xml
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Run unit tests
        run: mvn test --file pom.xml

Давайте подробно посмотрим на наш файл.

Мы определяем один рабочий процесс GitHub под названием «Java CI с Maven», который будет запускаться на каждом толчке к главной ветке, как указано на линиях 3-5.

Затем мы определяем две работы: построить и Тест Отказ

Мы видим, что эти рабочие места сделаны из серии шагов, и оба они работают на VM, обеспечиваемые GitHub, в нашем случае Ubuntu-Neighle Отказ

Для каждой работы мы сначала настройте JDK с Java 1.8 на VM, где задания будут работать, то мы составляем наш файл с двумя пользовательскими действиями:

  • Действия/Оформление @ v2 : используется для оформления нашего кода в виртуальную машину, чтобы мы узнаем, что запускать

  • Действия/Setup-Java @ v1: Это требуется, поскольку это проект Java, и нам нужна Java, установленная для запуска Maven и компиляции и запуска нашего кода и единицы тесты

Мы можем дать наши рабочие места на описательные имена, а в Беги: ... Часть конфигурации, мы точно указываем то, что мы хотим запустить, ядро работы, адаптированную к нашему конкретному проекту.

Как только это будет на месте, с каждым толчком к ветку Master мы можем проверить вкладку Действия И теперь мы увидим нашу работу, вплоть и бегу:

Обратите внимание, как имена заданий, рабочего процесса и шагов на каждом задании точно совпадают с тем, что мы определили в нашем First-Ci.yml Отказ

Когда рабочие процессы следуют этой структуре каталогов, мы можем заставить их и работать очень легко!

Вывод

CI/CD очень важен, и, в то время как несколько лет назад его можно было увидеть или даже уволить как приятно иметь для многих организаций и команд, в 2020 году, где сложность проектов выше, команды больше и стоимость регрессий Удерживает рост, нет оправдания не иметь настройки CI/CD. Это очень полезно, это позволяет нам, разработчикам, углубиться в мир DevOps, и он становится новым стандартом, поэтому, а это означает, что это означает, что более высокие риски для предприятий, клиентов и более высоких затрат на развертывание исправлений и исправлений. Надеюсь, что этот пост пролится на нем немного света, и теперь … Иди и настроив свои действия GitHub!

Оригинал: «https://dev.to/brunooliveira/using-github-actions-to-add-ci-cd-to-a-project-nc6»