To GitHub Actions είναι ένα εργαλείο που διευκολύνει την αυτοματοποίηση των ροών εργασίας λογισμικού με CI/CD (συνεχή ενοποίηση και παράδοση) παγκόσμιας κλάσης. Είναι δυνατή η κατασκευή, δοκιμή και διάταξη κώδικα απευθείας από το GutHub. Καθώς και η επιθυμητή διενέργεια επιθεωρήσεων κώδικα, διαχείρισης κλαδιών (branch management) και ειδικού χειρισμού θεμάτων (issue triaging).

Τα κύρια χαρακτηριστικά και αντίστοιχα πλεονεκτήματα του GitHub Actions είναι τα ακόλουθα:

  • Εκτέλεση ροής εργασίας που αντιδρά σε οποιοδήποτε γεγονός GitHub: Οι ροές εργασίας εκκινούνται από γεγονότα όπως ώθησης (push), δημιουργίας θέματος (issue creation) ή δημιουργίας νέας έκδοσης. Είναι δυνατός ο συνδυασμός και η διαμόρφωση των αντίστοιχων δράσεων, όσον αφορά τις υπηρεσίες προς χρήση, οι οποίες έχουν κατασκευαστεί και διατηρούνται από την κοινότητα. Υπάρχουν, λοιπόν, δράσεις για την κατασκευή ενός δοχείου (container), την διάταξη μιας διαδικτυακής υπηρεσίας (web service) ή την αυτοματοποίηση του καλωσορίσματος νέων χρηστών σε έργα ανοικτού κώδικα. Επίσης, είναι δυνατός ο συνδυασμός των GitHub Packages με το GitHub Actions ώστε να απλοποιηθεί η διαχείριση πακέτων, συμπεριλαμβανομένου των ανανεώσεων εκδόσεων, της γρήγορης κατανομής μέσω του καθολικού CDN (Content Delivery Network) της GitHub καθώς και η ανάλυση εξαρτήσεων χρησιμοποιώντας ένα υπάρχων GITHUB_TOKEN.
  • Πολλαπλά λειτουργικά συστήματα και δοχεία: Φιλοξενούμενοι εκτελεστές (runners) για κάθε σημαντικό λειτουργικό σύστημα διευκολύνουν την κατασκευή και δοκιμή όλων των έργων. Οι οποίοι μπορεί να εκτελεστούν απευθείας σε μια ιδεατή μηχανή ή μέσα σε ένα δοχείο (container). Είναι δυνατή η χρήση ιδίων ιδεατών μηχανών, είτε στο νέφος είτε σε επιτόπια περιβάλλοντα, με αυτό-φιλοξενούμενους (self-hosted) εκτελεστές.
  • Κατασκευές Μήτρας: υπάρχει η δυνατότητα για σώσιμο χρόνου με ροές εργασίας μήτρας (matrix workflows), οι οποίες μπορούν ταυτόχρονα να δοκιμάσουν έργα κατά μήκος διαφορετικών λειτουργικών συστημάτων και εκδόσεων του περιβάλλοντος εκτέλεσης
  • Οποιαδήποτε γλώσσα: υπάρχει υποστήριξη για Node.js, Python, Java, Ruby, PHP, Go, Rust, .NET και άλλες γλώσσες προγραμματισμού.
  • Ζωντανές καταγραφές (logs): είναι δυνατή η εμφάνιση της εκτέλεσης της ροής εργασίας με χρώματα και emoji. Είναι πολύ εύκολη με αυτό τον τρόπο η αντιγραφή συνδέσμου που επιδεικνύει ένα συγκεκριμένο αριθμό γραμμής ώστε να υπάρξει διαμοιρασμός μιας αποτυχίας CI/CD.
  • Ενσωματωμένο μυστικό αποθετήριο: προσφορά αυτοματοποίησης των πρακτικών ανάπτυξης λογισμικού με αρχεία ροών εργασίας που υιοθετούν το Git flow κωδικοποιώντας το στο αποθετήριό σας.
  • Δοκιμή πολλαπλών δοχείων: έλεγχος της διαδικτυακής υπηρεσία και της αντίστοιχης βάσης δεδομένων με την απλή προσθήκη ορισμένων εντολών docker-compose στο αρχείο της αντίστοιχης ροής εργασίας.
  • Ροές εργασίας ενισχυόμενες από την κοινότητα: υπάρχει η δυνατότητα χρήσης εκατομμύριων από βιβλιοθήκες ανοικτού κώδικα που είναι διαθέσιμες στο Github για την δημιουργία νέων δράσεων. Είναι δυνατή η συγγραφή των δράσεων αυτών σε Javascript ή η δημιουργία δράσης δοχείου (container Action). Και οι δύο εναλλακτικές μπορούν να αλληλεπιδράσουν με ολόκληρο το GitHub API και οποιοδήποτε άλλο δημόσιο API.

Τα οφέλη της χρήσης του GitHub Actions έχουν κατανοηθεί και αποκομιστεί από διάφορα μέλη της κοινότητας του GitHub. Ορισμένα από αυτά τα μέλη περιλαμβάνουν εταιρείες όπως:

  • SonarSource: Η αποστολή της είναι να ενισχύσει τις ομάδες ανάπτυξης με εργαλεία ποιότητας και ασφάλειας κώδικα. Αυτό σημαίνει την δυνατότητα ανίχνευσης σφαλμάτων και τρωτοτήτων ασφάλειας καθώς και παράλληλα τη δυνατότητα συνεισφοράς σε απλούς αλλά ισχυρούς αγωγούς (pipelines), όπου πολλά εργαλεία συνεργάζονται μεταξύ τους ως ομάδα. Αυτό επιτρέπεται ξεκάθαρα από την GitHub Actions.
  • GitKraken: Είναι ενθουσιασμένη με το GitHub Actions και τις δυνατότητες που προσφέρει, οι οποίες πηγαίνουν πέρα από CI/CD. Η ενοποίηση με το GitHub Actions επιτρέπει στους χρήστες του Glo Board να διαχειριστούν και να αυτοματοποιήσουν εύκολα τα θέματά τους (issues) με βάση διάφορα είδη triggers (σκανδάλων).
  • Dow Jones: Αγαπάει το GitHub Actions λόγω της προσφοράς του για CI/CD ώστε να οδηγήσει σε αυτό-περιεχόμενα συστήματα από άκρο σε άκρο (self-contained end-to-end systems) καθώς και στην διάταξής τους από ένα μόνο αποθετήριο (repository). Το εργαλείο της tokendito για την δημιουργία διαπιστευτηρίων ταιριάζει απόλυτα με το GitHub Actions για την ασφαλή αυθεντικοποίηση στο δικό της ιδιωτικό νέφος. Της επιτρέπει να αυτοματοποιήσει και προτυποποιήσει τόσο το κύκλο ανάπτυξης λογισμικού όσο και την διοίκηση ασφάλειας κατά μήκος όλων των οργανισμών της.

Πηγή: https://github.com/features/actions

Pin It on Pinterest