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.
PHP paslaugų kūrimas
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ų pavyzdys
SSH raktų konfigūravimas
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.
SSH raktų generavimas
Naujus SSH raktus galite generuoti vykdydami šią komandą savo kompiuteryje:
ssh-keygen -C "" -f /tmp/ssh_key -N ""
Viešojo rakto nustatymas
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:
- Po
SSH public keys, spustelėkite "Add a public key". - Nustatykite
Descriptionį "GitHub Action". - Įklijuokite gautą viešąjį raktą į
Keylauką.
Gauti paslaugos nustatymus
Privačiojo rakto nustatymas
Dabar atidarykite savo GitHub projektą ir atlikite šiuos veiksmus, kad sukonfigūruotumėte privatųjį raktą diegimui:
-
Spustelėkite
Settings, tadaEnvironmentsir pasirinkiteNew environment.
GitHub aplinkų konfigūravimas -
Lauke
Nameįveskite "production" ir patvirtinkite.
Aplinkos nustatymas -
Spustelėkite
No restrictionmygtuką ir pasirinkiteSelected branches and tags.
Aplinkos apribojimų nustatymas -
Spustelėkite
Add deployment branch or tag rule, įveskite "production" įName patternlauką ir spustelėkiteAdd rule.
Aplinkos šakos nustatymas
Aplinkos šakos nustatymas -
Po
Environment secrets, spustelėkiteAdd secret.
Pridėti slaptą raktą
Gaukite anksčiau sugeneruotą privatųjį raktą vykdydami:
cat /tmp/ssh_key
GitHub aplinkos nustatymuose:
-
Lauke
NameįveskiteSTACKHERO_SSH_PRIVATE_KEYir įklijuokite savo privatųjį raktą įValuelauką.
SSH privataus rakto slaptumo nustatymas -
Environment variablesskyriuje spustelėkiteAdd variable.
Kintamųjų nustatymas -
Lauke
NameįveskiteSTACKHERO_ENDPOINTir įklijuokite PHP paslaugos galinį tašką įValuelauką. Šį galinį tašką galite rasti savo Stackhero valdymo skydelyje.
Galinio taško kintamojo nustatymas
Jei pritaikėte savo paslaugos domeno vardą, naudokite pritaikytą versiją vietoj xxxxxx.stackhero-network.com.
Sugeneruotų raktų ištrynimas
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
GitHub Actions darbo eigos konfigūravimas
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ą
Sveikiname, dabar esate pasiruošę automatiškai diegti savo kodą į gamybą naudojant GitHub Actions!
Testavimo aplinkos kūrimas
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.
Tolimesni žingsniai
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ą.