2.20.9. Дэплой з дапамогай GitHub Actions
GitHub Actions - гэта набор сродкаў аўтаматызацыі працоўных працэсаў на GitHub. З іх дапамогай можна запускаць розныя дзеянні пры надыходзе пэўных падзей. Адным з прыкладаў з’яўляецца аўтаматычная выгрузка кода праекта з GitHub на хостынг пры пушы змен у рэпазітар.
Дэплой па SSH
Увага!
Каталог на хостынгу пры дэплоі чысціцца. Змесціва каталога будзе адпавядаць змесціва рэпазітара.Настройка аўтаматычнага дэплою на прыкладзе экшэна Rsync Deployments Action.
- Наладзьце SSH-аўтэнтыфікацыю па ключах:
- Згенеруйце і дадайце ключ у уліковы запіс.
- Прывяжыце ключ да хостынг-акаўнта, куды павінен выконвацца дэплой.
- Адкрыйце свой рэпазітар на GitHub.
- Дадайце неабходныя для дэплою дадзеныя ў сакрэты:
Як дадаваць сакрэты:
- Пераключыцеся на ўкладку «Settings».
- Выберыце «Secrets → Actions» у бакавым меню.
- Націсніце «New repository secret».
- Назавіце назву сакрэту ў полі «Name» і значэнне ў полі «Value».
- Націсніце «Add secret».
Кожны параметр дадаецца як асобны сакрэт.
Name Value REMOTE_HOST
Хост SSH REMOTE_USER
Лагін SSH REMOTE_KEY
Дадзеныя прыватнага ключа у фармаце PEM (пачынаецца з -----BEGIN RSA PRIVATE KEY-----
). Увага! Ключ павінен быць прыватны, не публічны.REMOTE_PATH
Абсалютны шлях да каталога на хостынгу, куды павінен выконвацца дэплой. - Наладзьце экшэн:
- Пераключыцеся на ўкладку «Actions».
- Націсніце «set up a workflow yourself» ці спачатку «New workflow», А затым «set up a workflow yourself».
- Заменіце код у поле «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 }}
- Націсніце «Start commit» і затым «Commit new file».
- Пераключыцеся на ўкладку «Actions» і праверце статут дэплою. Каб паглядзець падрабязнасці, націсніце на назву працоўнага працэсу ў спісе «All workflows» і затым на «build» - У выпадку поспеху каля кожнай аперацыі павінна стаяць галачка.
Дэплой па FTP
Увага!
Каталог на хостынгу пры дэплоі не чысціцца. Файлы, якіх няма ў рэпазітары, з каталога не выдаляюцца.Настройка аўтаматычнага дэплою на прыкладзе экшэна FTP Deploy.
- Стварыце на хостынгу FTP-карыстальніка з доступам да каталога, куды павінен выконвацца дэплой.
- Адключыце абмежаванні доступу па FTP.
- Адкрыйце свой рэпазітар на GitHub.
- Дадайце неабходныя для дэплою дадзеныя ў сакрэты:
Як дадаваць сакрэты:
- Пераключыцеся на ўкладку «Settings».
- Выберыце «Secrets → Actions» у бакавым меню.
- Націсніце «New repository secret».
- Назавіце назву сакрэту ў полі «Name» і значэнне ў полі «Value».
- Націсніце «Add secret».
Кожны параметр дадаецца як асобны сакрэт.
Name Value REMOTE_HOST
Хост FTP FTP_USER
Лагін FTP FTP_PASSWORD
Пароль FTP FTP_PATH
Адносны шлях ад каталога доступу FTP да каталога на хостынгу, куды павінен выконвацца дэплой. Увага! Шлях абавязкова павінен заканчвацца слёш /
. Таксама, калі ў вашым праекце ёсць каталогіlib
абоetc
, каталог доступу FTP-карыстальніка павінен быць такім, каб яны аказаліся не ў корані. - Наладзьце экшэн:
- Пераключыцеся на ўкладку «Actions».
- Націсніце «set up a workflow yourself» ці спачатку «New workflow», А затым «set up a workflow yourself».
- Заменіце код у поле «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 }}
- Націсніце «Start commit» і затым «Commit new file».
- Пераключыцеся на ўкладку «Actions» і праверце статут дэплою. Каб паглядзець падрабязнасці, націсніце на назву працоўнага працэсу ў спісе «All workflows» і затым на «build» - У выпадку поспеху каля кожнай аперацыі павінна стаяць галачка.