Рубрики
Uncategorized

Непрерывное развертывание на общий хостинг с действиями GitHub

Вступление В этом быстро меняющемся мире, где все, кажется, происходит быстро, это … Теги от Github, Laravel, DevOps, Vue.

Вступление

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

Что такое постоянное развертывание

Прежде всего, какое постоянное развертывание вы спрашиваете? По словам Поиск его операций

Непрерывное развертывание — это стратегия для выпусков программного обеспечения, в которой любой код кода, который передает автоматическую фазу тестирования, автоматически выпускается в производственную среду, внес изменения, которые видны для пользователей программного обеспечения.

Мы не будем покрывать тесты в этом посте (но в более позднем посте). Как вы можете видеть из определения, просто совершите, а затем все ваши изменения находятся на производственном сервере.

Что такое общий хостинг

Существуют разные варианты хостинга с популярными теперь общим хостингом и облачным хостингом.

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

Я уже давно использую общий хостинг, и мне надоело надоело передавать мои файлы через FTP каждый раз, когда я внес изменения. Затем я прибегал к использованию Github Где я толкнул свой код на репо, то вытащил его из моего общего хостинга. Я до сих пор не был удовлетворен. Я использовал Gitftp который был в порядке. Пока я не узнал о CI/CD в моем Азуби Африка класс.

Действия GitHub на спасение

После дальнейших исследований встретились через действия GitHub. Согласно их сайт :

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

Рабочий процесс

Давайте доберемся до сочного бита, делая некоторую реальную работу.

Настройка действий GitHub

(Это предполагает, что у вас уже есть репозиторий в вашем учетной записи GitHub, который вы хотите связать на ваш общий хостинг. Если нет, нажмите здесь ).

  • Откройте свой репозиторий на Github и отправляйтесь на Действия вкладка.

  • Нажмите на Настройте рабочий процесс себя → как показано ниже.

  • Удалите все содержимое Main.yml на странице, как показано ниже:

  • Замените файл с указанием ниже содержимого (обратите внимание на проект в Laravel с Vuue Frontend)

name: Deploy Site on push
on:
  push:
    branches:
      - master
jobs:
  web-deploy:
    name: Deploy
    runs-on: ubuntu-latest
    steps:
    - name: Get the latest code
      uses: actions/checkout@v2.3.2
    - uses: actions/setup-node@master
    - name: Installing project dependencies
      run: npm install
    - name: Building the project
      run: npm run production
    - name: Copy .env
      run: php -r "file_exists('.env') || copy('.env.example', '.env');"
    - name: Install Dependencies
      run: composer update --ignore-platform-reqs
    - name: Generate key
      run: php artisan key:generate
    - name: Directory Permissions
      run: chmod -R 777 storage bootstrap/cache
    - name: 📂 Sync files
      uses: SamKirkland/FTP-Deploy-Action@4.0.0
      with:
        server: ${{ secrets.LARAVEL_SITE_SERVER}}
        username: ${{ secrets.LARAVEL_SITE_USER}}
        password: ${{ secrets.LARAVEL_SITE_PASS}}

Позвольте мне теперь объяснить блок заблокировать то, что происходит

name: Deploy Site on push

Это имя рабочего процесса. GitHub отображает имена ваших рабочих процессов на странице действий вашего репозитория после его записи.

on:
  push:
    branches:
      - master

Именно здесь создается система действий GitHub, когда запустить рабочий процесс. Вышеуказанный фрагмент вызывает рабочий процесс, когда один толкает Мастер филиал Отказ Для получения дополнительной информации на клавише нажмите здесь

jobs:
  web-deploy:
    name: Deploy
    runs-on: ubuntu-latest

Работа — Группы вместе все задания, которые работают в файле рабочего процесса.

Web-развертывание — Определяет имя работы веб-развертывания, хранящуюся в разделе заданий.

Работает: Ubuntu-Neighle — Настраивает работу для запуска на ubuntu Linux Runner. Это означает, что работа будет выполняться на свежей виртуальной машине, размещенной GitHub.

steps:
    - name: Get the latest code
      uses: actions/checkout@v2.3.2
    - uses: actions/setup-node@master
    - name: Installing project dependencies
      run: npm install
    - name: Building the project
      run: npm run production

Помните, что шаги находятся внутри блока задания.

Шаги — Группы вместе все шаги, работающие в веб-развертывании задания. Каждый элемент, вложенный в этом разделе, является отдельной командой действия или оболочки.

Имя — для выявления отдельного действия.

Использование: Действия/ Checkout@v2.3.2 — Ключевое слово «Использование» сообщает задание для получения V2 от сообщества Действия с именем Действия/ Checkout@v2.3.2 Отказ Это действие, которое проверяет вашу репозиторий и загружает его на бегун, что позволяет вам запустить действия против вашего кода (например, инструменты тестирования). Вы должны использовать действие проверки в любое время, когда ваш рабочий процесс будет работать против кода репозитория, или вы используете действие, определенное в репозитории.

Использование: Действия/Setup-Node @ Master — Это действие устанавливает пакет программного узла на бегун, предоставляя вам доступ к команде NPM.

Беги: NPM Установите — Ключевое слово run сообщает задание выполнить команду на бегун. В этом случае вы используете NPM для установки зависимостей узла пакетов.

Беги: NPM пробежать производство — Это строит проект Vue Frontend.

- name: Copy .env
      run: php -r "file_exists('.env') || copy('.env.example', '.env');"
    - name: Setup PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: '8.0'
    - name: Install Dependencies
      run: composer update --ignore-platform-reqs
    - name: Generate key
      run: php artisan key:generate
    - name: Directory Permissions
      run: chmod -R 777 storage bootstrap/cache

Run: PHP -R «file_exists (‘. env’) Копировать (‘. env.example’, ‘.env’);

Run: Composer Update Iignore-Platform-reqs — Это используется для установки и обновления пакетов композиторов.

Run: PHP Artisan Key: Generate — Это генерирует ключ для проекта Laravel.

Run: Chmod -r 777 Загрузка/кеш/кэш — Это изменяет разрешения для указанной папки.

- name: 📂 Sync files
      uses: SamKirkland/FTP-Deploy-Action@4.0.0
      with:
        server: ${{ secrets.LARAVEL_SITE_SERVER}}
        username: ${{ secrets.LARAVEL_SITE_USER}}
        password: ${{ secrets.LARAVEL_SITE_PASS}}

Именно здесь файлы теперь передаются на Shared Hosting Server. Получите ваши данные FTP с вашего Общий хостинг Отказ Тогда иди к Ваше репо> Настройки> Секреты Затем добавьте три секреты именно: сервер, имя пользователя и затем пароль. Это действие любезно предоставлено Самкиркланд Отказ

Для получения дополнительной информации о действиях GitHub кликните сюда

Наслаждайтесь 😎.

Оригинал: «https://dev.to/madalitsonyemba/continuous-deployment-on-shared-hosting-with-github-actions-5agi»