Научим автоматизировать развертывание front-end проектов за 10 минут

внешний интерфейс CI/CD
Научим автоматизировать развертывание front-end проектов за 10 минут

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.

предисловие

Всем привет! я фронтендбезымянный

задний план

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

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

GitLab CI

Часто в нашем проекте присутствует файл .yml, и многие не знают, для чего этот файл.

GitLab CI/CD (далее GitLab CI) — система CI/CD на базе GitLab, которая позволяет разработчикам настраивать процесс CI/CD в проекте через .gitlab-ci.yml, после отправки система может автоматически /вручную для выполнения задач и выполнения операций CI/CD.

Проще говоря, функция этого yml-файла заключается в том, что после того, как мы отправим код в GitLab, GitLab CI автоматически прочитает содержимое в yml-файле и выполнит соответствующие операции. Gitlab — это просто репозиторий кода, для реализации CI/CD нам нужно установить gitlab-runner. gitlab-runner эквивалентен исполнителю задач.

Загрузить и установить

Например устанавливаем git-runner на тестовый сервер (9.138)

Сначала скачиваем и устанавливаем git-runner

# 下载 
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 
# 给予执行权限 
sudo chmod +x /usr/local/bin/gitlab-runner
# 创建一个CI用户
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash 
# 安装并且运行服务
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

зарегистрировать бегуна

image.png

средство просмотра gitLab

image.png

Используйте зарегистрированный бегун

Напишите файл .gitlab-ci.yml, сначала разберитесь с некоторыми основными понятиями.

1. Pipeline

Конвейер фактически эквивалентен задаче сборки, которая может содержать несколько процессов, таких как установка зависимостей, запуск тестов, компиляция, развертывание тестовых серверов и развертывание рабочих серверов. Любой коммит или мерж-реквест может инициировать конвейер, как показано на следующем рисунке:

image.png

2. Stages

Этапы представляют этап строительства, который является процессом, упомянутым выше. Мы можем определить несколько этапов в конвейере, эти этапы будут иметь следующие характеристики:

  • Все этапы будут проходить по порядку, то есть, когда один этап будет завершен, начнется следующий этап.
  • Задача сборки (конвейер) будет успешной только после завершения всех этапов.
  • Если какой-либо этап завершается сбоем, последующие этапы не будут выполняться, а задача сборки (конвейер) завершится сбоем.

Таким образом, отношения между этапами и конвейером:

image.png

2. Jobs

Задания представляют собой строительные работы и представляют работу, выполняемую на этапе. Мы можем определить несколько заданий на этапах, и эти задания будут иметь следующие характеристики:

  • Задания на одном этапе будут выполняться параллельно
  • Стадия будет успешной только тогда, когда все задания на одной и той же стадии будут успешно выполнены.
  • Если какое-либо задание дает сбой, то происходит сбой этапа, то есть задача сборки (конвейер) завершается с ошибкой.

Итак, диаграмма отношений между Джобсом и Стадией:

image.png

Напишем простой .gitlab-ci.yml

image.png

Уведомление

Для установки серверов git-runner необходимо установить git, иначе вы можете увидеть некоторые ошибки:

image.png

послесловие

Ваши комментарии приветствуются. Шаблон проекта постоянно оптимизируется, пожалуйста, лайкните один раз! Комментарии приветствуются.