2.20.9. Дэплой з дапамогай GitHub Actions

GitHub Actions - гэта набор сродкаў аўтаматызацыі працоўных працэсаў на GitHub. З іх дапамогай можна запускаць розныя дзеянні пры надыходзе пэўных падзей. Адным з прыкладаў з’яўляецца аўтаматычная выгрузка кода праекта з GitHub на хостынг пры пушы змен у рэпазітар.

Увага!

Каталог на хостынгу пры дэплоі чысціцца. Змесціва каталога будзе адпавядаць змесціва рэпазітара.

Настройка аўтаматычнага дэплою на прыкладзе экшэна Rsync Deployments Action.

  1. Наладзьце SSH-аўтэнтыфікацыю па ключах:
    1. Згенеруйце і дадайце ключ у уліковы запіс.
    2. Прывяжыце ключ да хостынг-акаўнта, куды павінен выконвацца дэплой.
  2. Адкрыйце свой рэпазітар на GitHub.
  3. Дадайце неабходныя для дэплою дадзеныя ў сакрэты:

    Як дадаваць сакрэты:

    1. Пераключыцеся на ўкладку «Settings».
    2. Выберыце «Secrets → Actions» у бакавым меню.
    3. Націсніце «New repository secret».
    4. Назавіце назву сакрэту ў полі «Name» і значэнне ў полі «Value».
    5. Націсніце «Add secret».

    Кожны параметр дадаецца як асобны сакрэт.

    Name Value
    REMOTE_HOST Хост SSH
    REMOTE_USER Лагін SSH
    REMOTE_KEY Дадзеныя прыватнага ключа у фармаце PEM (пачынаецца з -----BEGIN RSA PRIVATE KEY-----). Увага! Ключ павінен быць прыватны, не публічны.
    REMOTE_PATH Абсалютны шлях да каталога на хостынгу, куды павінен выконвацца дэплой.
  4. Наладзьце экшэн:
    1. Пераключыцеся на ўкладку «Actions».
    2. Націсніце «set up a workflow yourself» ці спачатку «New workflow», А затым «set up a workflow yourself».
    3. Заменіце код у поле «Edit new file» на такі:
      name: SSH deploy on push
      on: push
      jobs:
        build:
          runs-on: ubuntu-latest
          steps:
            - uses: actions/checkout@v3
            - name: rsync deploy
              uses: burnett01/rsync-deployments@5.2.1
              with:
                switches: -avzr --delete
                path: .
                remote_host: ${{ secrets.REMOTE_HOST }}
                remote_user: ${{ secrets.REMOTE_USER }}
                remote_key: ${{ secrets.REMOTE_KEY }}
                remote_path: ${{ secrets.REMOTE_PATH }}
    4. Націсніце «Start commit» і затым «Commit new file».
  5. Пераключыцеся на ўкладку «Actions» і праверце статут дэплою. Каб паглядзець падрабязнасці, націсніце на назву працоўнага працэсу ў спісе «All workflows» і затым на «build» - У выпадку поспеху каля кожнай аперацыі павінна стаяць галачка.

Увага!

Каталог на хостынгу пры дэплоі не чысціцца. Файлы, якіх няма ў рэпазітары, з каталога не выдаляюцца.

Настройка аўтаматычнага дэплою на прыкладзе экшэна FTP Deploy.

  1. Стварыце на хостынгу FTP-карыстальніка з доступам да каталога, куды павінен выконвацца дэплой.
  2. Адключыце абмежаванні доступу па FTP.
  3. Адкрыйце свой рэпазітар на GitHub.
  4. Дадайце неабходныя для дэплою дадзеныя ў сакрэты:

    Як дадаваць сакрэты:

    1. Пераключыцеся на ўкладку «Settings».
    2. Выберыце «Secrets → Actions» у бакавым меню.
    3. Націсніце «New repository secret».
    4. Назавіце назву сакрэту ў полі «Name» і значэнне ў полі «Value».
    5. Націсніце «Add secret».

    Кожны параметр дадаецца як асобны сакрэт.

    Name Value
    REMOTE_HOST Хост FTP
    FTP_USER Лагін FTP
    FTP_PASSWORD Пароль FTP
    FTP_PATH Адносны шлях ад каталога доступу FTP да каталога на хостынгу, куды павінен выконвацца дэплой. Увага! Шлях абавязкова павінен заканчвацца слёш /. Таксама, калі ў вашым праекце ёсць каталогі lib або etc, каталог доступу FTP-карыстальніка павінен быць такім, каб яны аказаліся не ў корані.
  5. Наладзьце экшэн:
    1. Пераключыцеся на ўкладку «Actions».
    2. Націсніце «set up a workflow yourself» ці спачатку «New workflow», А затым «set up a workflow yourself».
    3. Заменіце код у поле «Edit new file» на такі:
      name: FTP deploy on push
      on: push
      jobs:
        web-deploy:
          name: Deploy
          runs-on: ubuntu-latest
          steps:
          - name: Get latest code
            uses: actions/checkout@v3
          - name: Sync files
            uses: SamKirkland/FTP-Deploy-Action@v4.3.4
            with:
              server: ${{ secrets.REMOTE_HOST }}
              username: ${{ secrets.FTP_USER }}
              password: ${{ secrets.FTP_PASSWORD }}
              server-dir: ${{ secrets.FTP_PATH }}
    4. Націсніце «Start commit» і затым «Commit new file».
  6. Пераключыцеся на ўкладку «Actions» і праверце статут дэплою. Каб паглядзець падрабязнасці, націсніце на назву працоўнага працэсу ў спісе «All workflows» і затым на «build» - У выпадку поспеху каля кожнай аперацыі павінна стаяць галачка.
Змест