Рубрики
Uncategorized

Уровень 1 Сценарий непрерывного интеграции

Вы работаете с CI? Вы будете с этим простым сценарием. Теги с учебником, начинающими, дежопами, производительностью.

Если вы еще не используете CI Scripts еще или вы эту скрипты на репозитории вашей компании, но никогда не думали об этом, я позволю вам некоторым основаниям на простом способе достижения его.

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

Прежде всего, скрипт, который я назвал .gitlab-ci.yml (как я использую gitlab, каждый сервер Git будет иметь свое имя по умолчанию или позволит вам выбрать свой).

TL; DR: Просто скопируйте и вставьте весь сценарий ниже в вас .gitlab-ci.yml Установите Переменные среды и это все!

stages:
  - deploy

deploy:
  stage: deploy
  image: debian:stretch-slim
  only:
    - master

  script:
    - apt-get update && apt install -y --no-install-recommends lftp
    - lftp -e  "set ftp:ssl-allow no; set ssl:verify-certificate no; mirror -R ./dist/ "$REMOTE_ROUTE -p 21 -u $USER,$PSWD $HOST    

Что делает этот сценарий CI?

  • «Программно» развертывает проект на желаемом хостинге, когда выполняется нажимное значение для Master (чем-то с правами, чтобы подтолкнуть к мастеру или когда принимается запрос слияния на Master).

Хорошо, теперь давайте объясним это более точным способом: Мне пришлось удалить дефисы, потому что редактор DEV интерпретирует их как элементы списка на коротких фрагментах, не знаю, почему именно. Полный скрипт имеет правильный синтаксис.

  • Определяет стадию (под названием развертывание в этом случае).
  • На этапе развертывания мы определяем изображение (это генерирует контейнер докера с выбранной ОС на нем, и проект внутри него). В этом случае я использую Debian: STECT-SLIM. Быстро поднять, низкий вес … Я использую это почти всегда.
  • Когда нажать этот этап под названием развертывание?
    Когда что-то подталкивается в [имя ветви], в примере мы используем основную ветку.
  • Что сделает скрипт?
  • * Обратите внимание, что скрипт будет работать Внутри докера изображения ранее поднял.

Он будет обновлять удаленные репозитории и установить lftp (-Y, предполагая, да, если это необходимо) без установки рекомендуемых вещей нам не нужно в данный момент ( Документация LFTP для получения дополнительной информации )

script:
    - apt-get update && apt install -y --no-install-recommends lftp

Затем он передаст проект через FTP (на порт 21 по умолчанию) в $ Host ‘s $ Detment_rooute Использование $ Пользователь и $ Пароль как аутентификация.

    - lftp -e  "set ftp:ssl-allow no; set ssl:verify-certificate no; mirror -R ./dist/ "$REMOTE_ROUTE -p 21 -u $USER,$PSWD $HOST    

Ключевое слово $ — это переменные среды, связанные с проектом, на GitLab, вы можете найти, где их установить: Настройки -> CI/CD -> Переменные

Вот когда у меня есть ограничения, используя общий хостинг; Я не могу использовать соединение SSH, вместо этого у меня два варианта: FTP или SFTP. Если вы находитесь на облачном сервере, VPS или подобное, вы сможете использовать SSH тоже, кроме SFTP, FTP и так.

Вы можете — и должны — использовать SFTP или SSH. Опять же, см. Документация LFTP для получения дополнительной информации Отказ Помните, что сказать, что SFTP FTP Over SSH совершенно неточно, если вы не знакомы с FTP, SFTP или SSH, пожалуйста, Посетите эту ссылку.

Сноски

Я использую FTP здесь, так как мне нужно добавить закрытый ключ для использования SFTP (и это только общий хостинг для целей тестирования, в основном CSS + JS, поэтому весь код является общедоступным и доступным в Интернете). С другой стороны, я думаю, что это, вероятно, самый простой сценарий, который может помочь вам начать с DEVOPS, и тестируйте его, используя бесплатную учетную запись GitLab с дешевым общим хостингом (кстати, некоторые из них не дают SFTP соединения), например Чтобы опубликовать свое приятное статическое портфолио или для тестирования причин, если вам это нравится или вы, студент или младший, который хочет что-то простое, которое хочет проверить некоторые веб-языки (PHP, HTML, CSS, JS и т. Д.),

Если вы находитесь в компании или управляете пользовательским данным, или пытаясь добавить CI в свой частный проект, пожалуйста, используйте SFTP или SSH-соединение вместо FTP по соображениям безопасности.

Я добавим инструкции по настройке клиента SFTP для использования с клиентом SFTP, это может помочь вам понять, как он работает или тестирует соединения SFTP, прежде чем использовать его на скрипте CI:

SFTP clients typically require the following information to connect to a server:

Hostname — The server's hostname (for example, hostname.example.com).

SSH port number — The port number on which sshd listens (for example, 22).

Security — Whether the client combines FTP and SFTP functionality.

Username — The SSH username that the client uses to connect to the server. The username can be a valid cPanel account username or the root user.

Important: *
  You cannot use an FTP account to connect via SFTP.

Password — The SSH user's password.
Private Key — The SSH user's private key. This is the absolute path to a private key on your local computer (for example, c:\data\id_dsa).

Important: *
You may see a warning that the server's host key is unknown. To ensure that this message does not display again, accept the key and store it on your local computer.    

Рекомендация для начинающих

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

После попытки как 40 разных хостинговых компаний за последние 10 лет я Обязательно иди на Этот , который имеет C-панель и позволяет выбрасывать несколько консольных команд (с ограничениями) при менее чем на 5 u $ d в месяц (нажмите кнопку веб-хостинга в меню, чтобы увидеть общие планы хостинга).

Если каким-либо сомнением или если этот пост помог вам каким-то образом, даже если вам это не понравилось, пожалуйста, прокомментируйте ниже, чтобы продолжать прикосновение

Joelbonetr.

Оригинал: «https://dev.to/joelbonetr/level-1-continuous-integration-script-4loj»