Ramuri

Prezentare generală

Vizualizarea ramurilor vă oferă o privire de ansamblu asupra diferitelor ramuri ale depozitului dvs.

../../../_images/interface-branches.png

Etape

Odoo.sh oferă trei etape diferite pentru ramurile dvs.: producție, stagiu și dezvoltare.

Puteți schimba etapa unei ramuri prin trage și fixați-l în titlul secțiunii etapă.

../../../_images/interface-branches-stagechange.png

Producție

Aceasta este ramura care conține codul pe care baza de date de producție rulează. Poate exista doar o ramură de producție.

Când trimiteți un nou commit în această ramură, serverul dvs. de producție este actualizat cu codul reviziei noi și apoi este repornit.

Dacă modificările dvs. necesită actualizarea unui modul, cum ar fi o schimbare într-o formă de vizualizare, și doriți să fie efectuată automat, creșteți numărul versiunii modulului în manifestul său (__manifest__.py). Platforma va lua în considerare să efectueze actualizarea în timpul căreia instanța va fi reținută temporar indisponibil din motive de întreținere.

This method is equivalent to perform an upgrade of the module through the Apps menu, or through the -u switch of the command line.

În cazul în care modificările din commit împiedică serverul să repornească, sau dacă actualizarea modulului eșuează, serverul este automat revenit la precedenta revizie de cod cu succes și baza de date este roll-back ca era inainte de actualizare. Încă aveți acces la jurnalul actualizării eșuate, astfel încât puteți depana.

Datele demo nu sunt încărcate, deoarece nu este destinat să fie utilizat în o bază de date de producție. Unitățile de test nu sunt efectuate, deoarece ar crește timpul de indisponibilitate a bazei de date de producție în timpul actualizărilor.

Partenerii care utilizează proiecte de încercare ar trebui să fie conștienți de faptul că ramura lor de producție, împreună cu toate ramurile de stagiu, vor fi automat setate înapoi la stadiul de dezvoltare după 30 de zile.

Stagiu

Ramurile de stagiu sunt destinate testării caracteristicilor noi utilizând datele de producție fără a compromite baza de date de producție actuală cu înregistrări de test. Acestea vor crea baze de date care sunt duplicate neutralizate ale bazei de date de producție.

Neutralizarea include:

  • Dezactivarea acțiunilor programate. Dacă doriți să le testați, puteți declanșa acțiunea manual sau le puteți reactiva. Aveți în vedere că platforma va declanșa mai rar dacă nimeni nu utilizează baza de date pentru a economisi resurse.

  • Dezactivarea e-mailurilor trimise prin interceptarea lor cu un mailcatcher. O interfață pentru a vizualiza e-mailurile trimise de baza de date este furnizată. În acest fel, nu trebuie să vă faceți griji de a trimite e-mailuri de test către contactele dvs.

  • Setarea furnizorilor de plată și de transport în modul de testare.

  • Dezactivarea serviciilor IAP

Ultima bază de date va fi păstrată în viață în mod indefinit, cele mai vechi din aceeași ramură pot fi eliminate pentru a face loc pentru cele noi. Va fi valabilă pentru 3 luni, după care vă așteptăm să reconstruiți ramura. Dacă faceți modificări de configurare sau de vizualizare în aceste baze de date, asigurați-vă că le documentați sau le scrieți direct în modulele ramurii, folosind fișierele de date XML care suprascriu configurarea implicită sau afișările.

Testele unitare nu sunt efectuate, deoarece, în Odoo, acestea depind în prezent de datele demo, care nu sunt încărcate în baza de date de producție. În viitor, dacă Odoo acceptă rularea testelor unitare fără datele demo, Odoo.sh va considera rularea testelor pe bazele de date de stagiu.

Dezvoltare

Ramurile de dezvoltare creează noi baze de date utilizând datele demo pentru a rula testele unitare. Modulele instalate sunt cele incluse în ramurile dvs. Puteți schimba această listă de module de instalat în Setările proiectului.

Când trimiteți un nou commit în una dintre aceste ramuri, un nou server este pornit, cu o bază de date creată de la zero și cu noua revizie a ramurii. Datele demo sunt încărcate și testele unitare sunt efectuate în mod implicit. Acest lucru verifică dacă modificările dvs. nu strică niciuna dintre caracteristicile testate de ele. Dacă doriți, puteți dezactiva testele sau permite testelor specifice să fie rulate cu etichete personalizate în setările ramurii.

Similar to staging branches, the emails are not sent but are intercepted by a mailcatcher and scheduled actions are not triggered as long as the database is not in use.

Bazele de date create pentru ramurile de dezvoltare sunt menite să trăiască în jur de trei zile. După aceea, pot fi eliminate automat pentru a face loc unei noi baze de date fără notificare prealabilă.

Îmbinarea ramurilor

Puteți îmbina ramurile ușor prin trage și fixați-le una în cealaltă.

../../../_images/interface-branches-merge.png

Când doriți să testați modificările ramurilor de dezvoltare cu datele de producție, puteți face asta prin:

  • îmbinați ramura de dezvoltare în ramura de stagiu, prin trage și fixați-o pe ramura de stagiu dorită,

  • trage și fixați ramura de dezvoltare pe titlul secțiunii de stagiu, pentru a face ca aceasta să devină o ramură de stagiu.

Când ultimele modificări sunt gata pentru producție, puteți trage și fixa ramura de stagiu pe ramura de producție pentru a îmbina și a implementa în producție cele mai noi caracteristici.

Dacă sunteți destul de curajoși, puteți îmbina ramurile de dezvoltare în ramura de producție. Acest lucru înseamnă că treceți peste validarea modificărilor dvs. cu datele de producție prin intermediul unei ramuri de stagiu.

Puteți îmbina ramurile de dezvoltare una în cealaltă, și ramurile de stagiu una în cealaltă.

Desigur, puteți folosi și git merge direct pe stația de lucru pentru a îmbina ramurile. Odoo.sh va fi notificat atunci când au fost aduse noi revizii în ramurile dvs.

Îmbinarea unei ramuri de stagiu în ramura de producție îmbină doar codul sursă: orice modificări de configurare pe care le-ați făcut în bazele de date de stagiu nu sunt transmise în baza de date de producție.

Dacă testați modificări de configurare în ramuri de stagiu, și doriți ca acestea să fie aplicate în producție, trebuie să faceți una dintre următoarele:

  • scrieți modificările de configurare în fișiere de date XML care suprascriu configurarea implicită sau vizualizările în ramurile dvs., și apoi creșteți versiunea modulului dvs. în manifestul său (__manifest__.py) pentru a declanșa actualizarea modulului atunci când îmbinați ramura de stagiu în ramura de producție. Aceasta este cea mai bună practică pentru o scalabilitate mai bună a dezvoltărilor dvs. deoarece veți utiliza funcțiile de versionare Git pentru toate modificările de configurare, și prin urmare aveți o traseabilitate pentru modificările dvs.

  • transmiteți-le manual de la baza de date de stagiu la baza de date de producție, prin copiere/lipire.

Tab-uri

Istoric

O privire de ansamblu asupra istoricului ramurii dvs.:

  • Mesajele commit-urilor și autorii lor,

  • Evenimentele diferite legate de platformă, cum ar fi modificările de etapă, importurile de baze de date, restaurările de copii de rezervă.

../../../_images/interface-branches-history.png

Pentru fiecare eveniment, un status este afișat în colțul din dreapta sus. Acesta poate oferi informații despre operațiunea în curs de desfășurare pe baza de date (instalare, actualizare, import de copie de rezervă, …), sau rezultatul său (feedback-ul testelor, importul cu succes al copiei de rezervă, …). Când o operațiune este reușită, puteți accesa baza de date prin butonul connect.

Mail-uri

Acest tab conține prinderea de mail-uri. Afișează o privire de ansamblu asupra mail-urilor trimise de baza de date a dvs. Prinderea de mail-uri este disponibilă pentru ramurile dvs. de dezvoltare și de stagiu deoarece mail-urile bazei de date de producție sunt trimise într-adevăr în loc de a fi interceptate.

../../../_images/interface-branches-mails.png

Shell

Un acces shell la containerul dvs. Puteți efectua comenzi linux de bază (ls, top) și deschideți un shell pe baza de date prin tastarea psql.

../../../_images/interface-branches-shell.png

Puteți deschide mai multe tab-uri și le puteți trage și plasa pentru a aranja aspectul după cum doriți, de exemplu lângă altul.

Notă

Instanțele shell de lungă durată nu sunt garantate. Shell-urile inactive pot fi deconectate în orice moment pentru a elibera resursele.

Editor

Un mediu de dezvoltare integrat online (IDE) pentru a edita codul sursă. Puteți deschide de asemenea terminale, console Python și chiar console Odoo Shell.

../../../_images/interface-branches-editor.png

Puteți deschide mai multe tab-uri și le puteți trage și plasa pentru a aranja aspectul după cum doriți, de exemplu lângă altul.

Monitorizare

Acest link conține diverse metrici de monitorizare a construcției curente.

../../../_images/interface-branches-monitoring.png

Puteți mări, schimba intervalul de timp sau selecta o metrică specifică pe fiecare grafic. Pe grafice, adnotările vă ajută să vă raportați la modificările construcției (importul bazei de date, git push, etc…).

Jurnale

Un vizualizator pentru a vedea jurnalele serverului dvs.

../../../_images/interface-branches-logs.png

Sunt disponibile diferite jurnale:

  • install.log: Jurnalele instalării bazei de date. Într-o ramură de dezvoltare, jurnalele testelor sunt incluse.

  • pip.log: Jurnalele instalării dependențelor Python.

  • odoo.log: Jurnalele serverului care rulează.

  • update.log: Jurnalele actualizărilor bazei de date.

  • pg_long_queries.log: Jurnalele interogărilor psql care durează o cantitate neobișnuită de timp.

Dacă sunt adăugate linii noi în jurnale, acestea vor fi afișate automat. Dacă vă deplasați la partea de jos, browserul se va deplasa automat de fiecare dată când este adăugată o nouă linie.

Puteți întrerupe preluarea jurnalelor apăsând butonul corespunzător din colțul din dreapta sus al vizualizării. Preluarea este întreruptă automat după 5 minute. Puteți reporni utilizând butonul de redare.

Copii de rezervă

O listă a copiilor de rezervă disponibile pentru descărcare și restaurare, posibilitatea de a efectua o copie de rezervă manuală și de a importa o bază de date.

../../../_images/interface-branches-backups.png

Odoo.sh face copii de rezervă zilnice ale bazei de date de producție. Păstrează 7 copii de rezervă zilnice, 4 săptămânale și 3 lunare. Fiecare copie de rezervă include copia de rezervă a bazei de date, fișierele (atașamente, câmpuri binare), jurnalele și sesiunile.

Bazele de date de stagiu și dezvoltare nu sunt păstrate. Totuși, aveți posibilitatea de a restaura o copie de rezervă a bazei de date de producție în ramurile de stagiu, pentru teste, sau pentru a recupera manual date care au fost șterse accidental din baza de date de producție.

Lista conține copiile de rezervă păstrate pe serverul pe care este găzduită baza de date de producție. Acest server păstrează doar o lună de copii de rezervă: 7 zilnice și 4 săptămânale.

Serverele dedicate de copii de rezervă păstrează aceleași copii de rezervă, precum și 3 copii de rezervă suplimentare lunare. Pentru a restaura sau descărca una dintre aceste copii de rezervă lunare, vă rugăm să ne contactați.

Dacă faceți un commit care actualizează versiunea unui sau mai multor module (în __manifest__.py), sau dependențele lor python (în requirements.txt), atunci Odoo.sh face automat o copie de rezervă (marcată cu tipul Actualizare în listă), deoarece fie containerul va fi modificat prin instalarea de noi pachete pip, fie baza de date va fi modificată cu actualizarea modulului declanșată ulterior. În aceste două cazuri, facem o copie de rezervă, deoarece poate avea loc o deteriorare.

Dacă faceți un commit care modifică doar codul fără modificările menționate mai sus, atunci Odoo.sh nu face nicio copie de rezervă, deoarece nici containerul, nici baza de date nu sunt modificate, astfel încât platforma consideră că aceasta este suficient de sigură. Desigur, ca o măsură de precauție suplimentară, puteți face o copie de rezervă manuală înainte de a face modificări mari în sursele de producție în cazul în care ceva nu merge bine (aceste copii de rezervă manuale sunt disponibile pentru aproximativ o săptămână). Pentru a evita abuzul, limităm copiile de rezervă manuale la 5 pe zi.

Funcția import database acceptă arhive de baze de date în formatul furnizat de:

  • managerul standard al bazelor de date Odoo, (disponibil pentru servere Odoo on-premise sub /web/database/manager)

  • managerul de baze de date Odoo online,

  • butonul de descărcare a copiei de rezervă Odoo.sh din acest tab Backups,

  • butonul de descărcare a copiei de rezervă Odoo.sh din Vizualizarea Builds.

Actualizează

Disponibil pentru ramuri de producție și stagiu pentru proiecte valide.

Setări

Aici puteți găsi câteva setări care se aplică numai ramurii selectate în prezent.

../../../_images/interface-branches-settings.jpg

Comportament la un nou commit

Pentru ramuri de dezvoltare și stagiu, puteți schimba comportamentul ramurii la primirea unui nou commit. În mod implicit, o ramură de dezvoltare va crea un nou build și o ramură de stagiu va actualiza buildul anterior (vezi Stadiul de producție). Acest lucru este special de util dacă funcția pe care o lucrați necesită o configurare sau configurare particulară, pentru a evita să o setați manual din nou la fiecare commit. Dacă alegeți un nou build pentru o ramură de stagiu, va face o copie de la buildul de producție la fiecare commit. O ramură care este pusă înapoi de la stagiu la dezvoltare va fi automat setată la «Nu face nimic».

Instalarea modulelor

Alegeți modulele pentru instalarea automată pentru buildurile de dezvoltare.

../../../_images/interface-settings-modulesinstallation.png
  • Instalează doar modulele mele va instala doar modulele ramurii. Aceasta este opțiunea implicită. Submodulele sunt excluse.

  • Instalare completă (toate modulele) va instala modulele ramurii, modulele incluse în submodule și toate modulele standard ale Odoo. Când rulează instalarea completă, testele sunt dezactivate.

  • Instalează o listă de module va instala modulele specificate în intrarea de mai jos această opțiune. Numele sunt numele tehnic al modulelor și trebuie să fie separate prin virgulă.

Dacă testele sunt activate, suite-ul de module standard Odoo poate dura până la 1 oră. Această setare se aplică doar la buildurile de dezvoltare. Buildurile de stagiu duplică buildul de producție și buildul de producție instalează doar base.

Suite de teste

Pentru ramuri de dezvoltare, puteți alege să activați sau dezactivați suite-ul de teste. Este activat în mod implicit. Când suite-ul de teste este activat, puteți să le restricționați specificând etichetele de testare etichetele de testare.

Versiune Odoo

Pentru ramuri de dezvoltare doar, puteți schimba versiunea Odoo, dacă doriți să testați codul actualizat sau să dezvoltați funcții în timp ce baza de date de producție este în curs de actualizare la o versiune mai nouă.

În plus, pentru fiecare versiune aveți două opțiuni cu privire la actualizarea codului.

  • Puteți alege să beneficiați de ultimele corecții de bug-uri, securitate și performanță automat. Sursa serverului dvs. Odoo va fi actualizată săptămânal. Aceasta este opțiunea «Ultimul».

  • Puteți alege să fixați sursa Odoo la o revizie specifică selectându-le dintr-o listă de date. Reviziile vor expira după 3 luni. Veți fi notificat prin e-mail atunci când data expirării se apropie și dacă nu luați măsuri după aceea, veți fi automat setat la ultima revizie.

Domenii personalizate

Aici puteți configura domenii suplimentare pentru ramura selectată. Este posibil să adăugați alte domenii <name>.odoo.com sau propriile domenii personalizate. Pentru aceasta trebuie să:

  • dețineți sau cumpărați numele de domeniu,

  • adaugați numele de domeniu în această listă,

  • în managerul de nume de domeniu al providerului dvs., configurați numele de domeniu cu un înregistrare CNAME setată la numele de domeniu al bazei de date de producție.

De exemplu, pentru a asocia www.mycompany.com la baza de date mycompany.odoo.com:

  • în Odoo.sh, adăugați www.mycompany.com în domeniile personalizate ale setărilor proiectului dvs.,

  • în managerul de nume de domeniu (de exemplu godaddy.com, gandi.net, ovh.com), configurați www.mycompany.com cu un înregistrare CNAME cu ca valoare mycompany.odoo.com.

Domenii goale (de exemplu mycompany.com) nu sunt acceptate:

  • pot fi configurate numai folosind înregistrări A,

  • înregistrările A acceptă numai adrese IP ca valoare,

  • adresa IP a bazei de date poate fi schimbată, după o actualizare, o eroare de hardware sau dorința dvs. de a găzdui baza de date într-o altă țară sau continent.

Prin urmare, domeniile goale ar putea nu mai funcționa din cauza acestei schimbări a adresei IP.

În plus, dacă doriți ca atât mycompany.com cât și www.mycompany.com să funcționeze cu baza de date, având primul care redirecționează către al doilea este una dintre cele mai bune practici SEO (Vedeți Furnite o singură versiune a unei adrese URL pentru a ajunge la un document) pentru a avea o adresă URL dominantă. Puteți, prin urmare, doar configura mycompany.com pentru a redirecționa către www.mycompany.com. Majoritatea managerilor de domenii au funcția de a configura această redirecționare. Aceasta este adesea numită o redirecționare web.

HTTPS/SSL

Dacă redirecționarea este configurată corect, platforma va genera automat un certificat SSL cu Let’s Encrypt într-o oră și domeniul dvs. va fi accesibil prin HTTPS.

În timp ce momentan nu este posibilă configurarea propriilor certificări SSL pe platforma Odoo.sh, luăm în considerare această funcție dacă există o cerere suficientă.

SPF și DKIM compliance

Dacă domeniul adresei de e-mail a utilizatorilor dvs. utilizează SPF (Sender Policy Framework) sau DKIM (DomainKeys Identified Mail), nu uitați să autorizați Odoo ca un host de trimitere în setările numelui de domeniu pentru a crește livrabilitatea e-mailurilor dvs. de ieșire. Pașii de configurare sunt explicați în documentația despre SPF și DKIM.

Atenționare

Uitarea de a configura SPF sau DKIM pentru a autoriza Odoo ca un host de trimitere poate duce la livrarea e-mailurilor dvs. ca spam în cutia de primire a contactelor dvs.

Comenzi shell

În colțul din dreapta sus al vizualizării, sunt disponibile diferite comenzi shell.

../../../_images/interface-branches-shellcommands.png

Fiecare comandă poate fi copiată în clipboard pentru a fi utilizată într-un terminal, și unele dintre ele pot fi utilizate direct din Odoo.sh apăsând butonul run în acest caz o fereastră pop-up va solicita utilizatorului pentru a defini eventual locuri rezervate, cum ar fi <URL>, <PATH>, …

Clone

Descărcați depozitul Git.

$ git clone --recurse-submodules --branch master git@github.com:odoo/odoo.git

Clonează depozitul odoo/odoo.

  • --recurse-submodules: Descarcă submodulele depozitului dvs. Submodulele incluse în submodule sunt descărcate de asemenea.

  • --branch: verificați o ramură specifică a depozitului, în acest caz master.

Butonul run nu este disponibil pentru această comandă, deoarece este destinat să fie utilizat pe mașinile dvs.

Fork

Creați o nouă ramură bazată pe ramura curentă.

$ git checkout -b feature-1 master

Creează o nouă ramură numită feature-1 bazată pe ramura master, și apoi verifică-o.

$ git push -u origin feature-1

Încarcă noua ramură feature-1 în depozitul dvs. remote.

Îmbină

Îmbinați ramura curentă într-o altă ramură.

$ git merge staging-1

Îmbină ramura staging-1 în ramura curentă.

$ git push -u origin master

Încarcă modificările pe care tocmai le-ați adăugat în ramura master în depozitul dvs. remote.

SSH

Configurare

Pentru a utiliza SSH, trebuie să configurați cheia publică SSH a profilului dvs. (dacă nu a fost deja făcut). Pentru a face acest lucru, urmați acești pași:

  1. Generați o nouă cheie SSH

  2. Copiați cheia SSH în clipboard (aplicați doar pasul 1)

  3. Lipiți conținutul copiat în cheile SSH ale profilului dvs. și apăsați „Adăugați”

    ../../../_images/SSH-key-pasting.png
  4. Cheia ar trebui să apară mai jos

    ../../../_images/SSH-key-appearing.png

Conexiune

Pentru a vă conecta la construcțiile dvs. utilizând ssh, utilizați următoarea

$ ssh <build_id>@<domain>

Veți găsi o scurtătură pentru această comandă în fila SSH din colțul din dreapta jos.

../../../_images/SSH-panel.png

Dacă aveți drepturile de acces corecte pe proiect, veți primi acces ssh la construcție.

Notă

Conexiunile ssh cu durată lungă nu sunt garantate. Conexiunile inactive vor fi deconectate pentru a elibera resursele.

Submodul

Adăugați o ramură dintr-un alt depozit în ramura dvs. curentă ca un submodul.

Submodule vă permite să utilizați module din alte depozite în proiectul dvs.

Funcția de submodule este detaliată în capitolul Submodule din această documentație.

$ git submodule add -b master <URL> <PATH>

Adăugați ramura master a depozitului <URL> ca un submodul sub calea <PATH> în ramura dvs. curentă.

$ git commit -a

Comite toate modificările curente.

$ git push -u origin master

Încarcă modificările pe care tocmai le-ați adăugat în ramura master în depozitul dvs. remote.

Șterge

Ștergeți o ramură din depozitul dvs.

$ git push origin :master

Șterge ramura din depozitul dvs. la distanță.

$ git branch -D master

Șterge ramura din copia locală a depozitului dvs.