Κώδικας και deploy
Τα custom modules φτάνουν στο έργο από το δικό σας αποθετήριο GitHub. Το pipeline ελέγχει κάθε αλλαγή και την περνά πρώτα στο staging. Στην παραγωγή την προωθείτε εσείς.
Σύνδεση αποθετηρίου GitHub
Το αποθετήριο περιέχει μόνο τα custom modules του έργου. Το Odoo Enterprise και η σουίτα l10n.gr υπάρχουν ήδη στο έργο.
- Στην ενότητα «Κώδικας και pipeline» πατήστε «Εγκατάσταση του GitHub App» και επιλέξτε το αποθετήριο. Το app έχει μόνο δικαίωμα ανάγνωσης.
- Όταν επιστρέψετε στο console, επιλέξτε το «Αποθετήριο», το «Branch για staging» και, αν θέλετε, ένα «Branch για παραγωγή».
- Πατήστε «Σύνδεση».

Μετά την «Αποσύνδεση», τα νέα push δεν ξεκινούν πλέον εκτελέσεις. Οι εκδόσεις που έχουν ήδη εγκριθεί μένουν διαθέσιμες.
Το pipeline
Κάθε push στο branch του staging ξεκινά μια εκτέλεση. Μπορείτε να ξεκινήσετε μία και χειροκίνητα, με «Εκτέλεση τώρα». Τα στάδια είναι:
- Στατική ανάλυση: linting με κανόνες για Odoo, έλεγχος ασφαλείας του κώδικα Python και αναζήτηση κλειδιών ή κωδικών πρόσβασης που έχουν γραφτεί μέσα στον κώδικα.
- Έλεγχος ασφαλείας με AI: το AI εξετάζει την αλλαγή και βαθμολογεί τη σοβαρότητα όσων εντοπίσει.
- Εξαρτήσεις και συμβατότητα Odoo: ελέγχεται ότι το manifest είναι έγκυρο, ότι η έκδοση ταιριάζει με το Odoo του έργου, ότι οι εξαρτήσεις υπάρχουν, ότι τα πακέτα Python είναι από τη λίστα του l10n.gr και ότι τα προστατευμένα σημεία της σουίτας δεν έχουν αλλάξει.
- Build: δημιουργείται η έκδοση του έργου, με το Odoo Enterprise, την έκδοση l10n.gr και τα modules σας.
- Deploy στο staging: τα modules σας εγκαθίστανται ή αναβαθμίζονται στο staging.
Σε κάθε εκτέλεση τα ευρήματα χαρακτηρίζονται «Μπλοκάρει», «Προειδοποίηση» ή «Πληροφορία». Όταν μια αλλαγή έχει εύρημα που μπλοκάρει, δεν φτάνει στο staging. Το διορθώνετε, κάνετε ξανά push και ξεκινά αυτόματα νέα εκτέλεση. Κάθε εκτέλεση που περνά δημιουργεί μια εγκεκριμένη έκδοση (#1, #2 κ.ο.κ.).
Staging
Η ενότητα «Staging» δείχνει την έκδοση που έκανε deploy το pipeline και το «Ιστορικό staging». Με το «Άνοιγμα» μπαίνετε στο Odoo του staging. Μέχρι να περάσει η πρώτη εκτέλεση, το staging τρέχει την έκδοση l10n.gr χωρίς τα modules σας.
Ένα push στο staging δεν αλλάζει τα δεδομένα του. Αν θέλετε να δοκιμάσετε με τα πραγματικά δεδομένα του πελάτη, πατήστε «Κλωνοποίηση παραγωγής → staging». Τότε η βάση και τα αρχεία της παραγωγής αντικαθιστούν ό,τι υπάρχει στο staging. Η έκδοση με τα modules σας μένει εγκατεστημένη.
Πριν ξεκινήσει το staging, απενεργοποιούνται τα εξερχόμενα email, οι προγραμματισμένες ενέργειες και όλες οι διαβιβάσεις προς τον πάροχο και το myDATA. Έτσι, τα παραστατικά που εκδίδονται στο staging δεν φτάνουν ποτέ στην ΑΑΔΕ.

Η «Επανεκκίνηση» ξεκινά ξανά το Odoo του staging και διαρκεί ένα με δύο λεπτά.
Θέλετε να βλέπετε τις αλλαγές σας στο staging χωρίς push και χωρίς να περιμένετε το pipeline; Δείτε τη Ζωντανή ανάπτυξη με l10n-gr dev →
Deploy στην παραγωγή
Στην παραγωγή φτάνουν μόνο εγκεκριμένες εκδόσεις, δηλαδή όσες πέρασαν το pipeline και τρέχουν ήδη στο staging. Τις προωθείτε εσείς, όποτε είστε έτοιμοι.
- Στην ενότητα «Παραγωγή» πατήστε «Προώθηση…» ή, στην εκτέλεση που πέρασε, «Προώθηση στην παραγωγή».
- Επιλέξτε την εγκεκριμένη έκδοση.
- Επιβεβαιώστε με «Προώθηση της #…».
Αμέσως πριν από το deploy λαμβάνεται αυτόματα αντίγραφο ασφαλείας της παραγωγής. Το Odoo κάνει επανεκκίνηση και αναβαθμίζει τα modules που άλλαξαν. Οι χρήστες αποσυνδέονται μέχρι να ξεκινήσει ξανά το Odoo. Αν το deploy δεν ολοκληρωθεί, η βάση και τα αρχεία επανέρχονται σε αυτό το αντίγραφο και η παραγωγή συνεχίζει με την προηγούμενη έκδοση.

Αν έχετε ορίσει branch για παραγωγή, ένα push σε αυτό κάνει deploy μόνο όταν ο ίδιος κώδικας έχει ήδη περάσει από το staging, για παράδειγμα αφού κάνετε merge το branch του staging. Σε κάθε άλλη περίπτωση η εκτέλεση σταματά και η παραγωγή μένει ως έχει. Και εδώ λαμβάνεται αντίγραφο ασφαλείας πριν από κάθε deploy.
Επιστροφή σε προηγούμενη έκδοση
Με την «Επιστροφή» η παραγωγή τρέχει ξανά μια προηγούμενη έκδοση. Πρώτα λαμβάνεται αντίγραφο ασφαλείας και μετά το Odoo κάνει επανεκκίνηση.
Επιστρέφει μόνο ο κώδικας. Η βάση μένει ως έχει. Αν η νεότερη έκδοση άλλαξε τη δομή της βάσης, κάνετε επαναφορά στο σημείο που δημιουργήθηκε πριν από το deploy της (κεφάλαιο «Λειτουργία»).
Αναβάθμιση της σουίτας l10n.gr
Η Neurons Tech δημοσιεύει νέες εκδόσεις της σουίτας l10n.gr όταν αλλάζει η νομοθεσία. Το έργο το αναβαθμίζετε εσείς, από την κάρτα «Έκδοση l10n.gr» στην «Επισκόπηση», πρώτα στο staging και μετά στην παραγωγή.
- Στη «Νέα έκδοση για το staging» επιλέξτε την έκδοση και πατήστε «Αναβάθμιση staging». Το staging αναβαθμίζεται και κρατά τα modules που έχει από το pipeline.
- Ελέγξτε το staging με τη νέα έκδοση.
- Πατήστε «Αναβάθμιση παραγωγής σε …» και επιβεβαιώστε. Η παραγωγή περνά στην έκδοση που τρέχει το staging.
Πριν από την αναβάθμιση της παραγωγής δημιουργείται σημείο επαναφοράς. Όσο αναβαθμίζονται τα modules, το Odoo σταματά. Η βάση και τα αρχεία μένουν ως έχουν. Αν η αναβάθμιση αποτύχει, η παραγωγή παραμένει στην προηγούμενη έκδοση. Μπορείτε να επιλέξετε μόνο εκδόσεις νεότερες από αυτή που τρέχει το έργο.