PHP: Diegti naudojant GitHub Actions

Kaip diegti savo PHP kodą naudojant GitHub Actions

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti PHP cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Įdiekite savo programą per kelias sekundes su paprastu git push.
  • Naudokite savo domeno vardą ir pasinaudokite automatiniu HTTPS sertifikatų konfigūravimu, kad padidintumėte saugumą.
  • Mėgaukitės ramybe su automatinėmis atsarginėmis kopijomis, vieno paspaudimo atnaujinimais ir paprasta, skaidria bei prognozuojama kainodara.
  • Gaukite optimalų veikimą ir tvirtą saugumą dėka privačios ir dedikuotos VM.

Taupykite laiką ir supaprastinkite savo gyvenimą: išbandyti Stackhero PHP cloud hosting sprendimą užtrunka tik 5 minutes!

GitHub Actions palengvina užduočių, tokių kaip PHP kodo diegimas į gamybos serverius, automatizavimą. Šiame vadove sužinosite, kaip saugiai diegti savo PHP programą tiek į testavimo, tiek į gamybos aplinkas naudojant GitHub Actions.

Šis metodas apima dviejų šakų, staging ir production, palaikymą. Kodas, įkeltas į šias šakas, automatiškai diegiamas atitinkamoje Stackhero instancijoje.

Turėti testavimo instanciją nėra privaloma. Tačiau labai rekomenduojama naudoti tiek testavimo, tiek gamybos instancijas, kad būtų užtikrintas sklandus diegimas ir didesnis pasitikėjimas diegiant į gamybą. Ši praktika atitinka pramonės standartus ir padeda išvengti galimų problemų.

Norėdami sekti šį vadovą, jums reikia GitHub paskyros, kurioje talpinamas jūsų PHP kodo saugykla.

Pradėkite prisijungdami prie savo Stackhero valdymo skydelio ir sukurkite dvi PHP paslaugas: vieną testavimui ir vieną gamybai. Kad būtų tvarkinga, pervadinkite šias paslaugas į "Production" ir "Staging".

Jei neturite Stackhero paskyros, galite ją sukurti nemokamai per dvi minutes ir nustatyti savo PHP debesų paslaugas keliais paspaudimais.

Gamybos ir testavimo paslaugų pavyzdysGamybos ir testavimo paslaugų pavyzdys

SSH raktai yra būtini, kad GitHub Actions galėtų saugiai prisijungti prie jūsų PHP paslaugos diegimui. Šiame vadove sukursite unikalią SSH raktų porą, skirtą šiam tikslui.

Naujus SSH raktus galite generuoti vykdydami šią komandą savo kompiuteryje:

ssh-keygen -C "" -f /tmp/ssh_key -N ""

Gaukite viešąjį raktą vykdydami:

cat /tmp/ssh_key.pub

Tada eikite į savo Stackhero valdymo skydelį. Pasirinkite savo "Production" PHP paslaugą ir spustelėkite "Configure". Tada atlikite šiuos veiksmus:

  1. Po SSH public keys, spustelėkite "Add a public key".
  2. Nustatykite Description į "GitHub Action".
  3. Įklijuokite gautą viešąjį raktą į Key lauką.

Gauti paslaugos nustatymusGauti paslaugos nustatymus

Dabar atidarykite savo GitHub projektą ir atlikite šiuos veiksmus, kad sukonfigūruotumėte privatųjį raktą diegimui:

  • Spustelėkite Settings, tada Environments ir pasirinkite New environment.

    GitHub aplinkų konfigūravimasGitHub aplinkų konfigūravimas

  • Lauke Name įveskite "production" ir patvirtinkite.

    Aplinkos nustatymasAplinkos nustatymas

  • Spustelėkite No restriction mygtuką ir pasirinkite Selected branches and tags.

    Aplinkos apribojimų nustatymasAplinkos apribojimų nustatymas

  • Spustelėkite Add deployment branch or tag rule, įveskite "production" į Name pattern lauką ir spustelėkite Add rule.

    Aplinkos šakos nustatymasAplinkos šakos nustatymas Aplinkos šakos nustatymasAplinkos šakos nustatymas

  • Po Environment secrets, spustelėkite Add secret.

    Pridėti slaptą raktąPridėti slaptą raktą

Gaukite anksčiau sugeneruotą privatųjį raktą vykdydami:

cat /tmp/ssh_key

GitHub aplinkos nustatymuose:

  • Lauke Name įveskite STACKHERO_SSH_PRIVATE_KEY ir įklijuokite savo privatųjį raktą į Value lauką.

    SSH privataus rakto slaptumo nustatymasSSH privataus rakto slaptumo nustatymas

  • Environment variables skyriuje spustelėkite Add variable.

    Kintamųjų nustatymasKintamųjų nustatymas

  • Lauke Name įveskite STACKHERO_ENDPOINT ir įklijuokite PHP paslaugos galinį tašką į Value lauką. Šį galinį tašką galite rasti savo Stackhero valdymo skydelyje.

    Galinio taško kintamojo nustatymasGalinio taško kintamojo nustatymas

Jei pritaikėte savo paslaugos domeno vardą, naudokite pritaikytą versiją vietoj xxxxxx.stackhero-network.com.

Dėl saugumo priežasčių dabar turėtumėte pašalinti sugeneruotus SSH raktus iš savo kompiuterio:

rm /tmp/ssh_key /tmp/ssh_key.pub

Toliau nustatysite GitHub Actions darbo eigą, kad automatizuotumėte savo diegimus. Savo Git saugykloje sukurkite katalogą .github/workflows ir pridėkite failą pavadinimu deploy-to-stackhero.yml su šiuo turiniu:

# Failas: .github/workflows/deploy-to-stackhero.yml

name: Deploy to Stackhero
run-name: Deploy branch "${{ github.ref_name }}" to Stackhero

on:
  push:
    # Šakų sąrašas, kurios sukels diegimo veiksmą po git push
    # Nepamirškite sukurti atitinkamos aplinkos GitHub (po "Settings" -> "Environments") kiekvienai šakai
    # Tada pridėkite slaptą raktą "STACKHERO_SSH_PRIVATE_KEY" ir kintamąjį "STACKHERO_ENDPOINT" toje aplinkoje
    branches: [ "production", "staging" ]

jobs:
  Deploy:
    environment: ${{ github.ref_name }}
    runs-on: ubuntu-latest
    steps:
    - uses: stackhero-io/github-actions-deploy-to-stackhero@v1
      with:
        # Slaptas raktas "STACKHERO_SSH_PRIVATE_KEY" ir kintamasis "STACKHERO_ENDPOINT" turėtų būti apibrėžti atitinkamoje GitHub aplinkoje (po "Settings" -> "Environments")
        ssh_private_key: ${{ secrets.STACKHERO_SSH_PRIVATE_KEY }}
        endpoint: ${{ vars.STACKHERO_ENDPOINT }}

Pridėję failą, patvirtinkite savo pakeitimus vykdydami šias komandas savo terminale:

git add -A .
git commit -m "Pridėti GitHub Actions diegti į Stackhero"

Tada sukurkite gamybos šaką vykdydami:

git checkout -b production

Galiausiai, įkelkite savo pakeitimus į GitHub:

git push --set-upstream origin production

Ši komanda įkelia jūsų kodą į GitHub production šaką. GitHub Actions tada automatiškai vykdo ir diegia jūsų kodą į susijusią Stackhero instanciją. Norėdami patikrinti diegimą, apsilankykite savo GitHub projekte ir spustelėkite Actions.

GitHub Actions, kurios diegė į gamybąGitHub Actions, kurios diegė į gamybą

Sveikiname, dabar esate pasiruošę automatiškai diegti savo kodą į gamybą naudojant GitHub Actions!

Testavimo aplinką galite nustatyti naudodami panašų procesą kaip gamybos aplinkai. Tiesiog pakartokite aukščiau nurodytus veiksmus, kur reikia, pakeisdami production į staging.

Kai nustatymai sukonfigūruoti, sukurkite testavimo šaką vykdydami:

git checkout -b staging

Tada įkelkite savo pakeitimus į GitHub:

git push --set-upstream origin staging

GitHub Actions automatiškai diegia testavimo šakos kodą į PHP paslaugą, skirtą testavimui.

Rekomenduojama apsaugoti production ir staging šakas, kad būtų išvengta tiesioginių įkėlimų. Galite apsvarstyti galimybę sukurti pull request staging šakai, kurią peržiūri ir sujungia tik asmenys, turintys diegimo teises. Kai pakeitimai patvirtinami testavimo aplinkoje, įgalioti vartotojai gali sujungti pull request į production šaką.

Laikantis šio požiūrio padidėja saugumas, užtikrinant, kad būtų diegiami tik patvirtinti pakeitimai, ir pagerėja patikimumas, išbandant naujas funkcijas testavimo aplinkoje prieš joms pasiekiant gamybą.