Python: Diegimas naudojant GitHub Actions
Kaip diegti savo Python kodą naudojant GitHub Actions
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti Python cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:
- Įdiekite savo programą per kelias sekundes su paprastu
git push.- Naudokite savo domeno vardą ir pasinaudokite automatinės HTTPS sertifikatų konfigūracijos privalumais, kad padidintumėte saugumą.
- Mėgaukitės ramybe su automatinėmis atsarginėmis kopijomis, vieno paspaudimo atnaujinimais ir paprasta, skaidria bei prognozuojama kainodara.
- Gaukite optimalią veikimo ir tvirtą saugumo lygį dėka privačios ir dedikuotos VM.
Taupykite laiką ir supaprastinkite savo gyvenimą: išbandyti Stackhero Python cloud hosting sprendimą užtrunka tik 5 minutes!
GitHub Actions leidžia automatizuoti užduotis, tokias kaip jūsų Python kodo diegimas į gamybos serverius.
Šiame vadove sužinosite, kaip saugiai ir patikimai naudoti GitHub Actions, kad diegtumėte savo Python kodą tiek į bandomąją, tiek į gamybos aplinką.
Tam palaikysite dvi šakas: staging ir production. Kodas, įkeltas į šias šakas, bus automatiškai diegiamas atitinkamoje Stackhero instancijoje.
Turėti bandomąją instanciją nėra privaloma. Galite sekti šį vadovą ir turėti tik vieną gamybos instanciją. Tačiau, norint užtikrinti sklandų diegimą ir būti visiškai užtikrintiems diegiant į gamybą, labai rekomenduojama palaikyti tiek bandomąją, tiek gamybos instanciją. Ši praktika yra pramonės standartas ir protingas požiūris, kuris gali padėti išvengti daugybės problemų.
Prieš pradėdami, įsitikinkite, kad turite GitHub paskyrą su saugykla, kurioje talpinamas jūsų kodas.
Python paslaugų kūrimas
Apsilankykite savo Stackhero valdymo skydelyje ir sukurkite dvi Stackhero paslaugas: vieną bandomajai ir vieną gamybai. Aiškumo dėlei galite pervadinti šias paslaugas į "Production" ir "Staging".
Dar neturite Stackhero paskyros? Galite užsiregistruoti per dvi minutes nemokamai ir tada sukurti savo Python debesų paslaugas vos keliais paspaudimais.
Gamybos ir bandomųjų paslaugų pavyzdys
SSH raktų konfigūravimas
SSH raktai leidžia GitHub Actions saugiai prisijungti prie jūsų Python paslaugos kodo diegimui. Šis žingsnis yra būtinas norint apsaugoti jūsų Stackhero paslaugas.
Savo kompiuteryje sugeneruokite naujus SSH raktus vykdydami:
ssh-keygen -C "" -f /tmp/ssh_key -N ""
Viešojo rakto nustatymas
Pirmiausia, gaukite ką tik sugeneruotą viešąjį raktą:
cat /tmp/ssh_key.pub
Tada, Stackhero valdymo skydelyje, pasirinkite savo "production" Python paslaugą ir spustelėkite "Configure" mygtuką.
Gauti paslaugos nustatymus
Sekite šiuos žingsnius:
SSH public keysskyriuje spustelėkiteAdd a public key.Descriptionlauke įveskiteGitHub Action.Keylauke įklijuokite viešąjį raktą, kurį nukopijavote iš savo kompiuterio.
Pridėti viešąjį raktą
Privačiojo rakto nustatymas
Eikite į savo GitHub projekto puslapį ir spustelėkite Settings, tada Environments. Pasirinkite New environment.
GitHub aplinkų konfigūravimas
Name lauke įveskite "production" ir patvirtinkite.
Aplinkos nustatymas
Spustelėkite No restriction mygtuką ir pasirinkite Selected branches and tags.
Aplinkos apribojimų nustatymas
Tada spustelėkite Add deployment branch or tag rule, Name pattern lauke įveskite "production" ir spustelėkite Add rule.
Aplinkos šakos nustatymas
Aplinkos šakos nustatymas
Environment secrets skyriuje spustelėkite Add secret.
Pridėti slaptą raktą
Dabar gaukite anksčiau sugeneruotą privatųjį raktą:
cat /tmp/ssh_key
Slapto rakto nustatyme naudokite STACKHERO_SSH_PRIVATE_KEY kaip Pavadinimą ir įklijuokite privatųjį raktą kaip Vertę.
SSH privataus rakto slapto rakto nustatymas
Tada, Environment variables skyriuje spustelėkite Add variable.
Kintamųjų nustatymas
Įveskite STACKHERO_ENDPOINT kaip Pavadinimą ir įklijuokite savo Python paslaugos galinį tašką kaip Vertę. Šį 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ų pašalinkite SSH raktus iš savo kompiuterio, nes jų daugiau nereikės:
rm /tmp/ssh_key /tmp/ssh_key.pub
GitHub Actions darbo eigos konfigūravimas
Savo Git saugykloje sukurkite katalogą .github/workflows, jei jis dar neegzistuoja. Tada sukurkite failą pavadinimu deploy-to-stackhero.yml tame kataloge.
# 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 aplinkos, atitinkančios šakos pavadinimą GitHub ("Settings"/"Environments").
# Tada pridėkite atitinkamą slaptą raktą "STACKHERO_SSH_PRIVATE_KEY" ir kintamąjį "STACKHERO_ENDPOINT" šioje 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" turi būti apibrėžti atitinkamoje šakos aplinkoje GitHub "Settings"/"Environments".
ssh_private_key: ${{ secrets.STACKHERO_SSH_PRIVATE_KEY }}
endpoint: ${{ vars.STACKHERO_ENDPOINT }}
Patvirtinkite šiuos pakeitimus vykdydami:
git add -A .
git commit -m "Add GitHub Actions to deploy to Stackhero"
Tada sukurkite gamybos šaką:
git checkout -b production
Galiausiai, įkelkite savo pakeitimus į GitHub:
git push --set-upstream origin production
Ši komanda įkelia jūsų kodą į GitHub production šaką ir sukelia GitHub Actions, kad diegtų kodą į jūsų Stackhero instanciją.
Norėdami patikrinti diegimą, apsilankykite GitHub projekto puslapyje ir spustelėkite Actions.
GitHub Actions, kurios diegė į gamybą
Sveikiname, dabar galite automatiškai diegti savo kodą į gamybą naudodami GitHub Actions!
Bandomosios aplinkos kūrimas
Bandomosios aplinkos nustatymas yra labai panašus į gamybos aplinkos konfigūravimą. Tiesiog pakartokite aukščiau nurodytus veiksmus, pakeisdami production į staging.
Po aplinkos nustatymo sukurkite bandomąją šaką:
git checkout -b staging
Tada įkelkite savo bandomąją šaką į GitHub:
git push --set-upstream origin staging
GitHub Actions automatiškai diegs jūsų bandomąją šaką į Python instanciją, skirtą bandomajai aplinkai.
Tolimesni žingsniai
Rekomenduojama apsaugoti production ir staging šakas, kad būtų išvengta tiesioginių įkėlimų. Su šia konfigūracija, turi būti sukurtos pull requests staging šakai ir sujungtos komandos narių, turinčių atitinkamas teises. Kai patvirtinama bandomojoje platformoje, pull request gali būti sujungta į production šaką tų pačių įgaliotų asmenų.
Šis požiūris padidina saugumą užtikrinant, kad būtų diegiami tik patvirtinti pakeitimai, ir pagerina patikimumą, išbandant naujas funkcijas bandomojoje platformoje prieš joms pasiekiant gamybą.